R 如何为一列获取具有指定公式的data.table,但同时显示其余列?
假设我有一个R 如何为一列获取具有指定公式的data.table,但同时显示其余列?,r,data.table,R,Data.table,假设我有一个data.table,它有任意数量的列,但假设它很多。我想查看一个表,其中一列已转换,而其他列未转换 假设我要更改的列被称为col1,并且有100列,我希望类似于DT[,list(col1=col1*2.SD),.SDcols=2:100] 我认为这不起作用,因为一旦我调用.SD范围就会改变(我不太熟悉幕后的东西,所以我可能不知道我在说什么),所以它不再看到col1,因为我在eval(expr,envir,enclose)中得到错误:找不到对象“col1”。 因此,假设我只知道col
data.table
,它有任意数量的列,但假设它很多。我想查看一个表,其中一列已转换,而其他列未转换
假设我要更改的列被称为col1
,并且有100列,我希望类似于DT[,list(col1=col1*2.SD),.SDcols=2:100]
我认为这不起作用,因为一旦我调用.SD
范围就会改变(我不太熟悉幕后的东西,所以我可能不知道我在说什么),所以它不再看到col1
,因为我在eval(expr,envir,enclose)中得到错误:找不到对象“col1”
。
因此,假设我只知道
col1
的名称,但我希望返回包含所有列,那么我该怎么做呢。另外,我不想改变原来的DT,除非我必须这样做。(也就是说,如果可以,我想避免使用DT[,col1:=col1*2]
。如果您需要整个数据表
,但修改了一列,我只需使用复制
:
(copy(DT)[, col1 := col1*2])
如果您只需要一些列,请先选择,然后修改:
(DT[, 1:100][, col1 := col1*2])
起初我以为你们的第一个建议不起作用,但后来我用(不是真的)多余的外括号运行了它,它起了作用……谢谢