这令人沮丧,因为感觉它应该很简单,但它会占用几个小时。
我想获取数据框中列列表的行总和,但该列表(由用户设置)很可能是长度 1,即一个列号。
rowSums
不允许对 1 列求和。
rowsum
使用我发现完全无法破解的组。我已经使用这个例子很久了,仍然不知道它的用途,但它不能被省略。
这里的最佳答案使用rowSums
or apply
; 第二个使用.SD
and lapply
but 使用:=
and.SD
和其他未出现在 R 帮助中的术语,我以前也没有见过,这只会打开另一个搜索和混淆的虫洞。
所以:有什么我可以用的:
x <- matrix(runif(100), ncol = 5)
goodcols <- c(1,3,5)
y <- rowSums(x[,goodcols])
可以与 1 或 >1 goodcols 一起使用吗?
提前致谢。目前我正在考虑使用:
ifelse(length(goodcols)>1,
y<-rowSums(x[,goodcols]),
y<-x[,goodcols])