[R] What is going on?

Paul Johnston pcj127 at gmail.com
Wed Feb 11 20:18:16 CET 2009


Ok, so I'm new to R, but this is driving me crazy.  In this example, I
am trying to process each element in a list.

<code>
s = "1,2"
l = strsplit(s, ",", fixed=TRUE)
print("BEGIN")
n = length(l)
i = 1
while (i <= n) {
  x = l[[i]]
  print(paste("x:", class(x), x))
  print("BEFORE PRINT")
  print(x)
  print("AFTER PRINT")
  i = i + 1
}
</code>

<actual output>
     [exec] [1] "BEGIN"
     [exec] [1] "x: character 1" "x: character 2"
     [exec] [1] "BEFORE PRINT"
     [exec] [1] "1" "2"
     [exec] [1] "AFTER PRINT"
     [exec] [1] "END"
     [exec] [1] TRUE
</actual output>

<expected output>
     [exec] [1] "BEGIN"
     [exec] [1] "x: character 1"
     [exec] [1] "BEFORE PRINT"
     [exec] [1] "1"
     [exec] [1] "AFTER PRINT"
     [exec] [1] "x: character 2"
     [exec] [1] "BEFORE PRINT"
     [exec] [1] "2"
     [exec] [1] "AFTER PRINT"
     [exec] [1] "END"
     [exec] [1] TRUE
</expected output>

What *basic* concept am I missing here?  The same thing happens with
for (x in l) and lapply(l, function(x) print(x)). Please help.




More information about the R-help mailing list