Liaw, Andy wrote: > Given that the behavior is exactly as I expected it be, I would call > that "feature" (and IMHO not a very special one). The two data frames > are just different (try str() on them: A in dd is factor, while A in > dd2 is character), so I don't know why you'd expect unlist() on them to > give you the same answer.
Not sure what I would expect for unlist(). I was just curious and decided to try unlist() on a data frame and found this funny behaviour. But for as.character(), I definetly wouldn't expect this: > as.character(dd) [1] "c(2, 3, 1)" "c(3, 2, 1)" > as.character(dd$A) [1] "b" "c" "a" And generally speaking, it's a bad idea to have the semantic of standard objects controlled by some obscure global option. Here 2 people with a different "stringsAsFactors" option will not get the same results when manipulating 'dd'. It makes writing reproducible code harder because then you must remember to specify the stringsAsFactors option everytime you create a data frame. Cheers, H. > > Andy > > From: [EMAIL PROTECTED] >> Hi, >> >>> dd <- data.frame(A=c("b","c","a"), B=3:1) dd >> A B >> 1 b 3 >> 2 c 2 >> 3 a 1 >>> unlist(dd) >> A1 A2 A3 B1 B2 B3 >> 2 3 1 3 2 1 >> >> Someone else might get something different. It all depends on >> the values of its 'stringsAsFactors' option: >> >>> dd2 <- data.frame(A=c("b","c","a"), B=3:1, stringsAsFactors=FALSE) >>> dd2 >> A B >> 1 b 3 >> 2 c 2 >> 3 a 1 >>> unlist(dd2) >> A1 A2 A3 B1 B2 B3 >> "b" "c" "a" "3" "2" "1" >> >> Same thing with as.character: >> >>> as.character(dd) >> [1] "c(2, 3, 1)" "c(3, 2, 1)" >>> as.character(dd2) >> [1] "c(\"b\", \"c\", \"a\")" "c(3, 2, 1)" >> >> Bug or "feature"? >> >> Note that as.character applied directly on dd$A doesn't have >> this "feature": >> >>> as.character(dd$A) >> [1] "b" "c" "a" >>> as.character(dd2$A) >> [1] "b" "c" "a" >> >> Cheers, >> H. >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel >> >> >> > > > ------------------------------------------------------------------------------ > Notice: This e-mail message, together with any attachment...{{dropped}} ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel