2012-03-10 21 views
5

申し訳ありませんが、似たような質問が既に出されていると確信していますが、私はそれを見つけることができません。私は単なるデータフレーム内で多くの変数を合計したいだけです。小さな例として、私がしたいのは以下のようにdf $ eを計算することです。Rデータフレーム内の合計変数

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の$電子<言って、それを表現したい - 「とDの間のすべての変数の和を」

ありがとうございました!タグ付けにも役立つヘルプ。

ANSWER:df$e <- rowSums(subset(df, select=a:d))

私は、私は非常に明確にそれを必要とすることを表明しませんでしたが、私はrowSumsであったように私はsubsetのように無知でした。

+0

、 'addmargins'と' margin.table'は便利来ることができます。 –

答えて

10

rowSums()をお探しですか?あなたはもちろん、バックdfに割り当てることができます

> 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$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 
> 
+0

はそれに似ています:)しかし、データフレーム全体ではなく、最初と最後の列名を参照する必要があります。どうすればいい? –

+0

それに応じて引数を 'rowSums'にサブセットします。 –

+0

すみません、それは私がやるべきことを求めているのとまったく同じです。私は探し続けて、このページに戻る前に私が答えを見つけることができるかどうかを見ていきます。 –

2

を明示的a + b + c + d + ...を書かないでする方法を探していますか?あなたは行列/テーブルで作業することができた場合

もしそうなら、どの程度rowSums()

df$e <- with(df, rowSums(df)) 
+0

Dirkと同じコメントですが、データフレーム全体ではなく最初と最後の列名を参照する必要があります。どうすればいい? –

関連する問題