7
Mam następujący skróconego zestawu danych:Skutecznie podsumować w wielu kolumn w R
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="")]]
}
chciałbym podsumować kolumny zm1 i VAR2, których używam:
a$sum<-a$Var_1 + a$Var_2
W rzeczywistości mój zbiór danych jest znacznie większy - chciałbym sumować od Var_1 do Var_n (n może być do 20). Nie może być bardziej efektywny sposób to zrobić niż:
a$sum<-a$Var_1 + ... + a$Var_n
Spróbuj z zastosowaniem: a $ sum <- apply (a [, - 1], 1, suma) –
Dzięki, działa dobrze w następujących przypadkach, gdzie i jest indeksem kolumny Var_1, a j jest indeksem kolumny Var_n ' a $ sum <- apply (a [, c (i: j)], 1, sum) ' – user2568648
I jeszcze bardziej zautomatyzować proces (używając http://stackoverflow.com/questions/9277363/get-the-column- number-in-r-given-the-column-name/9277935 # 9277935): 'a $ sum <- apply (a [, c (dopasowanie (" Var_1 ", nazwy (a)): dopasowanie (" Var_n ", imiona (a)))], 1, suma) ' – user2568648