Another R tip: beware of as.character
applied to a list.
> as.character( list(letters[1:3], letters[4:6]) )
[1] "c(\"a\", \"b\", \"c\")" "c(\"d\", \"e\", \"f\")"
Really, beware of grep
with a list:
> grep("c", list(letters[1:3], letters[4:6]))
[1] 1 2
You might have thought that the result would be just 1
, but grep
expects a vector of character strings. If the input is not that, it uses as.character()
. Since the result of that starts with "c("
, grep
finds "c"
in each.
See the related discussion (from Sept 2011) on stackoverflow.