R数据帧中的和变量

时间:2012-03-10 23:44:55

标签: r

对不起,我确定已经问过类似的问题,但我恐怕找不到了。我只是想在数据帧中总结很多变量。作为一个小例子,我想做的是如下计算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}。

2 个答案:

答案 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))