在 R 中,如何对具有负整数和正整数的列进行行求和?
In R, how to do rowsums for columns with negative and positive integers?
我正在尝试对 4 列求和,其中一些列具有负值。
我这样做时收到一条错误消息:
Error in .subset(x, j) : only 0's may be mixed with negative subscripts
有没有办法克服这个问题并得到总和?我阅读了有关出现的错误的内容,但无法找到解决方案
这是我的代码:
calculation1 <- (rawdata$Concat1 * 12 / rawdata$Size)
calculation2 <- rawdata$Concat2 * 12 / rawdata$Size
calculation3 <- rawdata$Concat3 * 12 / rawdata$Size
calculation4 <- rawdata$Concat4 * 12 / rawdata$Size
rawdata$Cost <- rowSums(rawdata[,c(calculation1, calculation2, calculation3,
calculation4)], na.rm=TRUE)
对象 'calculation' 不是列名。我们可以使用 mget
、cbind
将这些对象放入 list
并执行 rowSums
rawdata$Cost <- rowSums(do.call(cbind,
mget(ls(pattern = '^calculation\d+$'))), na.rm = TRUE)
或使用 cbind
而不是 c
转换为 matrix
(或 data.frame
)
rowSums(cbind(calculation1, calculation2, calculation3,
calculation4), na.rm = TRUE)
此外,我们可以通过
简单地完成此操作,而不是创建多个对象
rowSums(rawdata[paste0('Concat', 1:4)] * 12/rawdata$Size, na.rm = TRUE)
我正在尝试对 4 列求和,其中一些列具有负值。 我这样做时收到一条错误消息:
Error in .subset(x, j) : only 0's may be mixed with negative subscripts
有没有办法克服这个问题并得到总和?我阅读了有关出现的错误的内容,但无法找到解决方案
这是我的代码:
calculation1 <- (rawdata$Concat1 * 12 / rawdata$Size)
calculation2 <- rawdata$Concat2 * 12 / rawdata$Size
calculation3 <- rawdata$Concat3 * 12 / rawdata$Size
calculation4 <- rawdata$Concat4 * 12 / rawdata$Size
rawdata$Cost <- rowSums(rawdata[,c(calculation1, calculation2, calculation3,
calculation4)], na.rm=TRUE)
对象 'calculation' 不是列名。我们可以使用 mget
、cbind
将这些对象放入 list
并执行 rowSums
rawdata$Cost <- rowSums(do.call(cbind,
mget(ls(pattern = '^calculation\d+$'))), na.rm = TRUE)
或使用 cbind
而不是 c
转换为 matrix
(或 data.frame
)
rowSums(cbind(calculation1, calculation2, calculation3,
calculation4), na.rm = TRUE)
此外,我们可以通过
简单地完成此操作,而不是创建多个对象rowSums(rawdata[paste0('Concat', 1:4)] * 12/rawdata$Size, na.rm = TRUE)