2012-03-10 30 views
5

Üzgünüm, benzer bir soru zaten soruldu ve eminim ki bulamıyorum. Sadece bir veri çerçevesindeki birçok değişkenleri toplamak istiyorum. Küçük bir örnek olarak, yapmak istediğim, aşağıdaki gibi df $ e değerini hesaplamaktır.R dataframe içindeki toplam değişkenler

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 

Ama df $ e < diyerek ifade etmek istiyorum - "a ve d arasındaki tüm değişkenlerin toplamı"

Teşekkür ederiz! Etiketlemede de yardımcı olun.

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

ben çok net ihtiyacı olduğunu ifade etmedi, ama ben rowSums arasında olduğu gibi subset itibarıyla cahil oldu.

+0

'addmargins' ve' margin.table' kullanışlı gelebilir nasıl

Eğer öyleyse,. –

cevap

10

rowSums() mi arıyorsunuz? elbette ayrıca df geri atayabilirsiniz

> 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

buna benziyor :) ancak tüm veri çerçevesinden ziyade ilk ve son ardışık sütun adlarını referans göstermeye ihtiyacım var. Bunu nasıl yaparım? –

+0

Buna göre argümanı 'rowSums 'olarak adlandırın. –

+0

Üzgünüm, tam olarak ne yapacağımı soruyorum. Bu sayfaya geri dönmeden önce bir cevap bulabilir miyim diye bakmaya devam edeceğim. –

2

açıkça a + b + c + d + ... dışarı yazmayın için bir yol arıyorsunuz? Eğer bir matris/tablo, birlikte çalışabilir ise yaklaşık rowSums()

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

Teşekkürler ... Dirk ile aynı yorum, evet ama tüm veri çerçevesinden ziyade ilk ve son ardışık sütun adlarını referans göstermeye ihtiyacım var. Bunu nasıl yaparım? –

İlgili konular