Dmi*_*riy -3 parallel-processing r data.table
我有一个data.table对象resultList,其中包含名为的列"V1:V128"和一些行。我想获取那些满足条件的列的名称,例如
lapply(.SD, mean) < a
Run Code Online (Sandbox Code Playgroud)
我尝试这样做:
names(resultList[, lapply(.SD, mean) < 0])
Run Code Online (Sandbox Code Playgroud)
但我没有任何效果。什么代码实现这个?
第二个问题 - 是否可以使用parLapply代替lapplyfor data.table(例如,使用parLapply(cl, .SD, mean)代替lapply(.SD, mean))?
要获取平均值小于某个特定值的列的名称,您可以执行以下操作:
dt = data.table(a = rep(1,10), b = rep(10,10))
colnames(dt)[colMeans(dt) < 10]
## [1] "a"
Run Code Online (Sandbox Code Playgroud)
或者更符合语言习惯的data.table方法是
colnames(dt)[dt[, lapply(.SD, mean) < 10]]
## [1] "a"
Run Code Online (Sandbox Code Playgroud)
另请参阅 data.table 的注意事项
| 归档时间: |
|
| 查看次数: |
7571 次 |
| 最近记录: |