On Sep 16, 2009, at 9:22 PM, Peng Yu wrote:
Hi,
As show in the code below, strsplit can be applied to a matrix but not
a data.frame. I don't understand why R is designed in this way. Can
somebody help me understand it? How to split all the strings in x$y?
x=data.frame(x=1:10,y=rep("abc",10))
strsplit(x$y,'b') #Error in strsplit(x$y, "b") : non-character
argument
y=cbind(1:10,rep("abc",10))
strsplit(y[,2],'b')
You've been tripped up by the factor demon.
?strsplit
str(x)
'data.frame': 10 obs. of 2 variables:
$ x: int 1 2 3 4 5 6 7 8 9 10
$ y: Factor w/ 1 level "abc": 1 1 1 1 1 1 1 1 1 1
There is an option:
stringsAsFactors: The default setting for arguments of data.frame
and read.table.
Which if changed to FALSE would allow you to "design" as you see fit.
--
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
R-help@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.