对不起,我确定已经问过类似的问题,但我恐怕找不到了。我只是想在数据帧中总结很多变量。作为一个小例子,我想做的是如下计算df $ e。
df <- data.frame(a=c(1,2,3,4,5), b=(c(6,7,8,9,10)),
c=c(1,2,3,4,5), d=(c(6,7,8,9,10)))
df$e <- with(df, a+b+c+d) # this is the right answer
但我想通过说df $ e&lt; - “a和d之间所有变量的总和来表达它。”
谢谢!帮助也赞赏标记。
答案:df$e <- rowSums(subset(df, select=a:d))
我没有表达我非常清楚地需要它,但我对subset
rowSums
一样无知。{/ 1}。
答案 0 :(得分:10)
您在寻找rowSums()
吗?
> df <- data.frame(a=c(1,2,3,4,5), b=(c(6,7,8,9,10)),
+ c=c(1,2,3,4,5), d=(c(6,7,8,9,10)))
> with(df, a+b+c+d)
[1] 14 18 22 26 30
> rowSums(df)
[1] 14 18 22 26 30
>
您当然可以将其分配回df
:
> df$e <- rowSums(df)
> df
a b c d e
1 1 6 1 6 14
2 2 7 2 7 18
3 3 8 3 8 22
4 4 9 4 9 26
5 5 10 5 10 30
>
答案 1 :(得分:3)
您是否在寻找一种不明确写出a + b + c + d + ...
的方法?
如果是,那么rowSums()
df$e <- with(df, rowSums(df))