On Jan 29, 2010, at 9:31 AM, johannes rara wrote:
How to vectorize this for loop and how can I assign result to vector
instead of using print function?
as.vector( sapply(mylist$a, function(x)
? ? ? ? ? ? ? ? ? ? ? ? ? sapply(mylist$b, function (y)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? { c(x, ?y, mylist[[3]]) }
? ? ? ? ? ?) ) )
?[1] "a" "A" "1" "2" "3" "a" "B" "1" "2" "3" "a" "C" "1" "2" "3" "b" "A" "1"
"2" "3" "b" "B" "1" "2"
[25] "3" "b" "C" "1" "2" "3" "c" "A" "1" "2" "3" "c" "B" "1" "2" "3" "c" "C"
"1" "2" "3"
You did say you wanted a vector, right?
--
David.
mylist <- list(a = letters[1:3], b = LETTERS[1:3], c = c("1", "2", "3"))
for (i in seq_along(mylist[[1]])) {
? ?for (j in seq_along(mylist[[2]])) {
? ? ? print(mylist[[1]][i])
? ? ? print(mylist[[2]][j])
? ? ? print(mylist[[3]])
? ?}
}
Run version:
mylist <- list(a = letters[1:3], b = LETTERS[1:3], c = c("1", "2", "3"))
mylist
$a
[1] "a" "b" "c"
$b
[1] "A" "B" "C"
$c
[1] "1" "2" "3"
for (i in seq_along(mylist[[1]])) {
+ ? ? ?for (j in seq_along(mylist[[2]])) {
+ ? ? ? ? print(mylist[[1]][i])
+ ? ? ? ? print(mylist[[2]][j])
+ ? ? ? ? print(mylist[[3]])
+ ? ? ?}
+ }
[1] "a"
[1] "A"
[1] "1" "2" "3"
[1] "a"
[1] "B"
[1] "1" "2" "3"
[1] "a"
[1] "C"
[1] "1" "2" "3"
[1] "b"
[1] "A"
[1] "1" "2" "3"
[1] "b"
[1] "B"
[1] "1" "2" "3"
[1] "b"
[1] "C"
[1] "1" "2" "3"
[1] "c"
[1] "A"
[1] "1" "2" "3"
[1] "c"
[1] "B"
[1] "1" "2" "3"
[1] "c"
[1] "C"
[1] "1" "2" "3"