2015-03-12 23 views
7

aşağıdaki özet veri kümesi vardır:verimli R birden çok sütun Özetle

a<-as.data.frame(c(2000:2005)) 
a$Col1<-c(1:6) 
a$Col2<-seq(2,12,2) 

colnames(a)<-c("year","Col1","Col2") 

for (i in 1:2){ 
    a[[paste("Var_", i, sep="")]]<-i*a[[paste("Col", i, sep="")]] 
} 

kullandığım sütun Var1 ve VAR2, özetlemek istiyoruz: Gerçekte

a$sum<-a$Var_1 + a$Var_2 

my veri kümesi çok daha büyük - Var_1'den Var_n'a kadar toplamı istiyorum (n, 20'ye kadar olabilir). Sen colSums(a[,c("Var1", "Var2")]) veya rowSums(a[,c("Var_1", "Var_2")]) kullanabilirsiniz

a$sum<-a$Var_1 + ... + a$Var_n 
+1

Başvuruda bulunun: a $ sum <- geçerli (a [, - 1], 1, toplam) –

+3

Teşekkürler, ben, var_1 sütun indeksi ve j'nin Vardaki sütun dizini olduğu yerde iyi çalışır. $ sum <- uygulayın (a [, c (i: j)], 1, toplam) ' – user2568648

+0

Ve süreci daha da otomatik hale getirin (http://stackoverflow.com/questions/9277363/get-the-column- kullanarak sayı-in-r-verilen-sütun-adı/9277935 # 9277935): '$ sum <- uygulayın (bir [, c (eşleşme (" Var_1 ", adlar (a)): eşleşme (" Var_n "), adları (a)))], 1, toplam) ' – user2568648

cevap

7

: daha bunu yapmak için daha verimli bir yolu olmalı. Senin durumunda, ikincisini istiyorsun.

İlgili konular