小编Eld*_*rov的帖子

在不使用FileSystemObject的情况下删除目录及其内容(文件,子目录)

我想知道是否可以重写这段代码:

Private Sub PrepareDir(ByVal dir As String)
    Dim fso As New FileSystemObject
    If fso.FolderExists(dir) Then Call fso.DeleteFolder(dir, True)
    Call fso.CreateFolder(dir)
End Sub
Run Code Online (Sandbox Code Playgroud)

使用VBA语句:Kill,MkDir等.这个中最"困难"的部分 - 删除非空目录.使用FSO可以轻松完成,但如何在没有FSO的情况下完成它?

excel vba excel-vba filesystemobject

6
推荐指数
2
解决办法
3万
查看次数

收集以跳过空值的映射

如何从列表中收集地图,其中排除/跳过空值?

此代码不会跳过空值:

val map = listOf(Pair("a", 1), Pair("b", null), Pair("c", 3), Pair("d", null))
    .associateBy({ it.first }, { it.second })
println(map)
Run Code Online (Sandbox Code Playgroud)

解决方案.但收集到可变的地图:

val map2 = listOf(Pair("a", 1), Pair("b", null), Pair("c", 3), Pair("d", null))
    .mapNotNull {
        if (it.second != null) it else null
    }.toMap()    
println(map2)
Run Code Online (Sandbox Code Playgroud)

那么有更方便的方法吗?我也希望得到Map<String, Int>类型,而不是Map<String, Int?>

kotlin

6
推荐指数
3
解决办法
3043
查看次数

仅使用data.table将NA替换为data.table中的最后一个非NA

我想,以取代NA与去年非NA值的值data.table和使用data.table。我有一个解决方案,但是它比na.locf

library(data.table)
library(zoo)
library(microbenchmark)

f1 <- function(x) {
    x[, X := na.locf(X, na.rm = F)]
    x
}

f2 <- function(x) {
    cond <- !is.na(x[, X])
    x[, X := .SD[, X][1L], by = cumsum(cond)]
    x
}

m1 <- data.table(X = rep(c(NA,NA,1,2,NA,NA,NA,6,7,8), 100))
m2 <- data.table(X = rep(c(NA,NA,1,2,NA,NA,NA,6,7,8), 100))

microbenchmark(f1(m1), f2(m2), times = 10)

#Unit: milliseconds
#   expr        min          lq      median          uq         max neval
# f1(m1)   2.648938    2.770792    2.959156    3.894635    6.032533    10
# f2(m2) …
Run Code Online (Sandbox Code Playgroud)

r na data.table

4
推荐指数
2
解决办法
1422
查看次数

page.evaluate - 如何在其中写入文件?

如何在page.evaluate中写入结果?将结果放入console.log但使用ts引发错误写入文件时,此代码可正常工作.

page.evaluate(function(url) {
        function getHTTPResponseString(url, callback) {
            try {
                var xhr = new XMLHttpRequest();
                xhr.onload = function() {
                    if (this.status == 200) {
                        var u8 = new Uint8Array(this.response), bs = [];
                        for (var i = u8.length - 1; i >= 0; --i) {
                            bs[i] = String.fromCharCode(u8[i]);
                        }
                        callback(bs.join(''));
                    } else {
                        console.log(this.statusText);
                        callback('');
                    }
                }
                xhr.open('GET', url, true);
                xhr.responseType = 'arraybuffer';
                xhr.send();
            } catch (e) {
                console.log(JSON.stringify(e));
            }
        }
        getHTTPResponseString(url, function(result) {
            console.log(result);
        })
    }, url);
Run Code Online (Sandbox Code Playgroud)

javascript phantomjs

3
推荐指数
1
解决办法
709
查看次数

将 NA 行替换为前一行和特定列中的非 NA 值

我有一个矩阵,其中行的所有列都可以有 NA。我想用前一行的非 NA 值和第 K 列替换这些 NA 行。

例如,这个矩阵:

      [,1] [,2]
 [1,]   NA   NA
 [2,]   NA   NA
 [3,]    1    2
 [4,]    2    3
 [5,]   NA   NA
 [6,]   NA   NA
 [7,]   NA   NA
 [8,]    6    7
 [9,]    7    8
[10,]    8    9
Run Code Online (Sandbox Code Playgroud)

必须转换为这个非 NA 矩阵,其中我们使用第 2 列进行替换:

      [,1] [,2]
 [1,]   NA   NA
 [2,]   NA   NA
 [3,]    1    2
 [4,]    2    3
 [5,]    3    3
 [6,]    3    3
 [7,]    3    3
 [8,]    6    7
 [9,]    7    8
[10,]    8    9
Run Code Online (Sandbox Code Playgroud)

我为此编写了一个函数,但使用循环:

# …
Run Code Online (Sandbox Code Playgroud)

r na

0
推荐指数
1
解决办法
4341
查看次数

标签 统计

na ×2

r ×2

data.table ×1

excel ×1

excel-vba ×1

filesystemobject ×1

javascript ×1

kotlin ×1

phantomjs ×1

vba ×1