我想知道是否可以重写这段代码:
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的情况下完成它?
如何从列表中收集地图,其中排除/跳过空值?
此代码不会跳过空值:
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?>
我想,以取代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) 如何在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) 我有一个矩阵,其中行的所有列都可以有 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)