【发布时间】:2016-06-03 09:02:50
【问题描述】:
我是 data.table 的初学者,我正在尝试做一个非常简单的操作,在基本数据帧中看起来像这样:
percentages[percentages<0] = abs(percentages[percentages<0])
数据如下:
percentages
p1 p2 p3
1: 0.689 0.206 0.106
到目前为止,我发现的仅获取数据的 data.table 解决方案是:
percentages[,which(percentages<0),with=FALSE]
但它比数据框更复杂......应该有更好的东西但我什么都得不到......有什么建议吗?
【问题讨论】:
-
请显示几行数据集和预期输出
-
您可能不需要
which,但对于子集data.table,需要with=FALSE。此外,如果是百分比,则为.SD -
好的,谢谢,刚刚尝试了您的建议,但似乎不起作用..
-
> percents$p1=-0.54 > percents[,.SD
-
您是否像示例中那样只有一行?无论如何,
df1[, df1[, .SD < 0], with = FALSE]似乎工作或df1[, sapply(df1, "<", 0), with = FALSE]
标签: r data.table logical-operators