2012-11-20 3 views
14

特定の列の合計を計算し、すべての行にこの合計を適用したいと考えています。 残念ながら、私は最初のステップに進むことができます。どのようにして各行でそれを実現させるのですか? Rにはループは必要ありませんが、正しい方法は何でしょうか? (zscore)各行の特定の列のセルを合計します。

私の行列は次のようになります。

a b c t y 
1 3 4 7 7 4 

2 4 56 6 6 4 

3 3 3 2 1 7 

4 3 88 9 9 9 

は、今私はcolumsの一部に基づいて、行ごとに行の合計を計算したいと思います。 1行の場合、次のようになります。

f1 <- sum(zscore[1,1:2], zscore[1,3], zscore[1,5]) 

これで、どのように行ごとに行うのですか?あなたがそれらを除外することを確認してください、あなたはNAをお持ちでない場合は、あなたのテーブルには、非数値列がある場合

summed <- rowSums(zscore[, c(1, 2, 3, 5)]) 

答えて

33

あなたはこのような何かを行うことができますrowSumにあります。

+0

驚くべきことに、私はその間にループでやりましたが、あなたの解決策はWAY cleanerです! – user1807857

+0

それはRの力です: – alestanis

0

あなたはこの

suma.zscore = (zscore$a + zscore$c + zscore$t + zscore$y) 
+0

データフレームやマトリックスに応じて、as.numericは次のような追加機能を必要とするかもしれません:suma.zscore =(as.numeric(zscore $ a)+ as.numeric(zscore $ c)...など) –

0

を適用することができます。