在R中获取数据表中的行和

在R中获取数据表中的行和,r,data.table,R,Data.table,我正在寻找一种简单的方法,将我的数据表中大约170个不同列的总和作为一个新列。我可以使用通配符吗 以下是我的数据集的小摘录(前几列): > head(t_checkin) checkin_info_0.0 checkin_info_0.1 checkin_info_0.2 checkin_info_0.3 checkin_info_0.4 checkin_info_0.5 NA NA NA

我正在寻找一种简单的方法,将我的数据表中大约170个不同列的总和作为一个新列。我可以使用通配符吗

以下是我的数据集的小摘录(前几列):

> head(t_checkin)
checkin_info_0.0 checkin_info_0.1 checkin_info_0.2 checkin_info_0.3 checkin_info_0.4 checkin_info_0.5
              NA               NA               NA               NA               NA                1
               3               NA               NA               NA               NA                1
              NA               NA                1               NA               NA               NA
              NA               NA               NA               NA               NA               NA
              NA               NA               NA               NA               NA               NA
              NA               NA               NA               NA               NA               NA
任何帮助都将不胜感激。 谢谢编辑

更正,照@MatthewDowle说的做:

dat <- data.frame(x=1:11,y=100:110,z=sample(letters,11))
DT <- as.data.table(dat)
names <- c("x","y")
DT[,lapply(.SD,sum),.SDcols=names]


mysum <- function(x){sum(x, na.rm=TRUE)}
DT[,lapply(.SD,mysum),.SDcols=names]

dat try
?colSums
函数查看
na.rm
参数-取决于如何处理缺少的值感谢信息。我想省略NA值,因此我想我可以使用colSums(t_checkin,NA.rm=“False”)之类的东西,但我的数据集中还有一列是string。我怎么也可以省略第一列?@oostopitre分组列已从
中排除。SD
但要排除其他列,请使用
。SDcols
colsums
不是
data.table
中的最佳方法。在
?data.table
中有一个
lapply(.SD,…)
的示例,这是预期的方式。通常与
.SDcols
参数一起使用。因此,我最终通过@user1317221\u G使用以下语法得到了我想要的:
t\u checkin$totCheckinI可能遗漏了一些东西,如果需要
行和
。旁白:不是
mysum
而是
DT[,lapply(.SD,sum,na.rm=TRUE),.SDcols=names]
?@oostopitre如果您需要行和,那么从“列和”的问题中根本不清楚这一点
lapply(.SD
仅用于列和。从内存和效率的角度来看,行和是完全不同的;
数据。目前,table
在这方面没有比
rowSums
更好的了。感谢您提供的信息。这实际上是非常有用的信息。很抱歉让人困惑的标题。更改了标题。