[R] What is going on?

Ben Bolker bolker at ufl.edu
Wed Feb 11 20:43:31 CET 2009



 The problem is that strsplit is designed to work on a *vector* of
characters (your example is a length-1 vector of characters), each
of which might end up being split into a character vector of different
lengths, so it returns its results as a *list* the same length as
the original character vector: in this case a list of length 1.

> str(l)
List of 1
 $ : chr [1:2] "1" "2"

length(l) is 1; length(l[[1]]) is 2.

  Ben Bolker


Paul Johnston-6 wrote:
> 
> 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.
> 
> ______________________________________________
> R-help at 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.
> 
> 

-- 
View this message in context: http://www.nabble.com/What-is-going-on--tp21962284p21962681.html
Sent from the R help mailing list archive at Nabble.com.




More information about the R-help mailing list