Hi! I am new to looping and R in general; and I have sent waaaay to much time on this one problem and am about a hair away from doing it manually for the next two days.
So, there is a package that while calculating the statistic creates lists (that look like matrices) in the background. Each item (there are 10 items) has one of these matrix looking list that I need to extract data from. The list has 5 rows that represent 5 groups, and 8 columns. I need to extract 3 of the columns (Lo Score=[,2], Hi Score=[,3], and Mean=[,7]) for each of the items. I then want to turn the extracted data into 3 matrices (Lo Score, Hi Score, and Mean) where the rows are the 5 groups and the columns are items 1-10. This is how I can create the mean matrix by hand. MDD.mean.s10 is the matrix I want in the end. (notice the first bracket after $results is the only part that changes 1-10 (to represent the 10 items) and the last bracket is [,7] to represent the mean located in column 7) > m.1a <- MC_MDD.noNA$results[[1]][[2]][,7] > m.2b <- MC_MDD.noNA$results[[2]][[2]][,7] > m.3c <- MC_MDD.noNA$results[[3]][[2]][,7] > m.4d <- MC_MDD.noNA$results[[4]][[2]][,7] > m.5e <- MC_MDD.noNA$results[[5]][[2]][,7] > m.6f <- MC_MDD.noNA$results[[6]][[2]][,7] > m.7g <- MC_MDD.noNA$results[[7]][[2]][,7] > m.8h <- MC_MDD.noNA$results[[8]][[2]][,7] > m.9i <- MC_MDD.noNA$results[[9]][[2]][,7] > m.10j <- MC_MDD.noNA$results[[10]][[2]][,7] > MDD.mean.s10 <- cbind(m.1a, m.2b, m.3c, m.4d, m.5e, m.6f, m.7g, m.8h, m.9i, m.10j) > > MDD.mean.s10 m.1a m.2b m.3c m.4d m.5e m.6f m.7g m.8h m.9i m.10j [1,] 0.8707865 0.7393939 0.7769231 0.7591241 0.8533333 0.7925926 0.8258065 0.8410596 0.8843931 0.5638298 [2,] 0.8323353 0.7302632 0.5913978 0.5868263 0.6923077 0.6182796 0.6964286 0.6839080 0.7911392 0.3212121 [3,] 0.8726115 0.7159763 0.7117647 0.6163522 0.7987805 0.7105263 0.7613636 0.7674419 0.8034682 0.4011299 [4,] 0.9024390 0.7894737 0.7795276 0.6530612 0.8593750 0.7112676 0.8672566 0.8629032 0.9152542 0.4834437 [5,] 0.9861111 0.9102564 0.8452381 0.8160920 0.9726027 0.8658537 0.8352941 0.9342105 0.9466667 0.6454545 But I cant do this by hand every time, as this comes up over and over and over again in multiple lists. I have figured out how to loop this procedure and name the vector as it goes along: > for(i in 1:10){ + assign(paste("m", i, sep = ""), MC_MDD.noNA$results[[i]][[2]][,7]) + } > > > m1 [1] 0.8707865 0.8323353 0.8726115 0.9024390 0.9861111 > m2 [1] 0.7393939 0.7302632 0.7159763 0.7894737 0.9102564 > m3 [1] 0.7769231 0.5913978 0.7117647 0.7795276 0.8452381 > m4 [1] 0.7591241 0.5868263 0.6163522 0.6530612 0.8160920 > m5 [1] 0.8533333 0.6923077 0.7987805 0.8593750 0.9726027 > m6 [1] 0.7925926 0.6182796 0.7105263 0.7112676 0.8658537 > m7 [1] 0.8258065 0.6964286 0.7613636 0.8672566 0.8352941 > m8 [1] 0.8410596 0.6839080 0.7674419 0.8629032 0.9342105 > m9 [1] 0.8843931 0.7911392 0.8034682 0.9152542 0.9466667 > m10 [1] 0.5638298 0.3212121 0.4011299 0.4834437 0.6454545 Now here where I get stuck how do I cbind these vectors without typing it out expliciity? ie. mean.MDD <- cbind(m1,m2,m3,m4,m5,m6,m7,m8,m9,10) Everything I have tried keeps overwriting the data instead of building a matrix. Basically I, start with a matrix (5x10) of zeros. Then I wind up with a few values in the beginning, but the rest is still zeros. Example of terrible code: > fo <- matrix(0,5,10) > colnames(fo) <- paste('f', 1:10, sep = "") > fo f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 [1,] 0 0 0 0 0 0 0 0 0 0 [2,] 0 0 0 0 0 0 0 0 0 0 [3,] 0 0 0 0 0 0 0 0 0 0 [4,] 0 0 0 0 0 0 0 0 0 0 [5,] 0 0 0 0 0 0 0 0 0 0 > for(i in 1:10){ + fo <- assign(paste("f", i, sep = ""), MC_MDD.noNA$results[[i]][[2]][,7]) + } > fo [1] 0.5638298 0.3212121 0.4011299 0.4834437 0.6454545 > fo <- matrix(0,5,10) > colnames(fo) <- paste('f', 1:10, sep = "") > fo f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 [1,] 0 0 0 0 0 0 0 0 0 0 [2,] 0 0 0 0 0 0 0 0 0 0 [3,] 0 0 0 0 0 0 0 0 0 0 [4,] 0 0 0 0 0 0 0 0 0 0 [5,] 0 0 0 0 0 0 0 0 0 0 > for(i in 1:10){ + fo <- cbind(assign(paste("f", i, sep = ""), MC_MDD.noNA$results[[i]][[2]][,7])) + } > fo [,1] [1,] 0.5638298 [2,] 0.3212121 [3,] 0.4011299 [4,] 0.4834437 [5,] 0.6454545 Thanks for your help in advance!!! (c: [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.