Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何为一列获取具有指定公式的data.table,但同时显示其余列?_R_Data.table - Fatal编程技术网

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])

起初我以为你们的第一个建议不起作用,但后来我用(不是真的)多余的外括号运行了它,它起了作用……谢谢