> #just to have some data > testdata<-matrix(rnorm(14*7),ncol=14) > testframe<-as.data.frame.matrix(testdata) > names(testframe)<-c("Year","Series","Age","WM", "WF","HM","HF","BM","BF","IM","IF","AM","AF","Yr") > #one way is colSums > colSums(testframe)[c(3,5,8,10)] Age WF BM IM 5.024714070 1.974526477 0.004256433 -2.940214886 > #another way is a for loop > testvector<-rep(NA,14) > for (i in 1:14) testvector[i]<-sum(testframe[,i]) > testvector[c(3,5,8,10)] [1] 5.024714070 1.974526477 0.004256433 -2.940214886 > #there are other ways:)
<snip> for(i in 4:13){ sumVar<- sum(popA[,i]) sumVar2<-c(sumVar) } <end snip> You are replacing sumVar in each iteration of the loop, not creating a new element. bob -----Original Message----- From: Siddique, Amer [mailto:[EMAIL PROTECTED] Sent: Friday, July 18, 2003 4:02 PM To: '[EMAIL PROTECTED]' Subject: [R] create a vector looping over a frame Hello, I have a data.frame > names(popA) [1] "Year" "Series" "Age" "WM" "WF" "HM" "HF" "BM" [9] "BF" "IM" "IF" "AM" "AF" "Yr" how do i loop over a subset of variables in this frame to create a vector of length equal to the number of variables in the subset such that the vector's ith element is the result of an aggregate fncn applied to the ith variable? eg, sumvar<-c(sum(WM),...,sum(AF)) if i try for(i in 4:13){ sumVar<- sum(popA[,i]) sumVar2<-c(sumVar) } it returns > sumVar2 [1] 287567 > length(sumVar2) [1] 1 which is only the value at the last spot. i cant quite figure this simple loop. Thanks, Amer Siddique ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help [[alternative HTML version deleted]] ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help