[Rd] Unexpected result of as.character() and unlist() applied to a data frame

hpages at fhcrc.org hpages at fhcrc.org
Tue Mar 27 05:48:33 CEST 2007


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.



More information about the R-devel mailing list