Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.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_List_Vector_Data.table - Fatal编程技术网

R data.table:单独列中向量的总和

R data.table:单独列中向量的总和,r,list,vector,data.table,R,List,Vector,Data.table,我有一个带有向量的data.table或单元格中带有向量的实际列表,即: testDATA <- data.table('COLUMN_1' = list(1:4, 11:14, 21:24), 'COLUMN_ABC' = list(5:8, 25:28, 15:18), 'COLUMN1342' = list(2:5, 32:35, 22:25)) 虽然问题是我有所有的列,我应该在column

我有一个带有向量的data.table或单元格中带有向量的实际列表,即:

testDATA <- data.table('COLUMN_1' = list(1:4, 11:14, 21:24),
                       'COLUMN_ABC' = list(5:8, 25:28, 15:18),
                       'COLUMN1342' = list(2:5, 32:35, 22:25))

虽然问题是我有所有的列,我应该在columnsToSum向量中求和。有什么想法吗?

我想这应该适合你

testDATA[, sumCol := Reduce(function(a,b) Map(`+`,a,b), .SD), 
    .SDcols=columnsToSum]
我们使用
.SD
从数据表中获取一组列,然后使用
Reduce()
顺序相加,并使用
Map()
分别相加每一行。它将处理2个以上的列

columnsToSum <- names(testDATA)
testDATA[, sumCol := Reduce(function(a,b) Map(`+`,a,b), .SD), .SDcols=columnsToSum]
testDATA
#       COLUMN_1  COLUMN_ABC  COLUMN1342          sumCol
# 1:     1,2,3,4     5,6,7,8     2,3,4,5     23,31,39,47
# 2: 11,12,13,14 25,26,27,28 32,33,34,35 193,201,209,217
# 3: 21,22,23,24 15,16,17,18 22,23,24,25 153,161,169,177

columnsToSum我认为这应该适合你

testDATA[, sumCol := Reduce(function(a,b) Map(`+`,a,b), .SD), 
    .SDcols=columnsToSum]
我们使用
.SD
从数据表中获取一组列,然后使用
Reduce()
顺序相加,并使用
Map()
分别相加每一行。它将处理2个以上的列

columnsToSum <- names(testDATA)
testDATA[, sumCol := Reduce(function(a,b) Map(`+`,a,b), .SD), .SDcols=columnsToSum]
testDATA
#       COLUMN_1  COLUMN_ABC  COLUMN1342          sumCol
# 1:     1,2,3,4     5,6,7,8     2,3,4,5     23,31,39,47
# 2: 11,12,13,14 25,26,27,28 32,33,34,35 193,201,209,217
# 3: 21,22,23,24 15,16,17,18 22,23,24,25 153,161,169,177

columnsToSum谢谢!你能解释一下为什么inherits=TRUE在这里是Nessery吗?它与
get()
mget()
在搜索变量时有不同的行为。非常感谢!如果我有两个向量columnsToSum1和columnsToSum2,我想把它们乘成一个新的列,你能给我一个线索吗(例如,columnsToSum1的第一列*columnsToSum2的第一列+第二列等?我应该问新问题吗?这非常不同。我会问一个新问题。确保它可以独立存在。谢谢!你能解释一下为什么这里需要inherits=TRUE吗?它与。
get()
mget()相关)
在搜索变量时有不同的行为。非常感谢!如果我有两个向量columnsToSum1和columnsToSum2,并且我想将它们作为一个新列相乘,你能给我一个提示吗(例如,第一列来自列STOSUM1*第一列来自列STOSUM2+第二列等?我应该问新问题吗?这非常不同。我会问一个新问题。确保它能够独立存在。