[R] Creating a data.frame

Joe Trubisz jtrubisz at mac.com
Wed Feb 13 23:17:32 CET 2008


OK...newbie question here.
Either I'm reading the docs wrong, or I'm totally confused.

Given the following:

x<-c("aaa","bbb","ccc")
y<-rep(0,3)
z<-rep(0,3)

is.character(x)
[1] TRUE

is.numeric(y)
[1] TRUE

Now...I want to create a data frame, but keep the data types.
In reading the docs, I assume you do it this way:

d<-data.frame(cbind(x=I(x),y=y,z=z)

But, when I do str(d), I get the following:

'data.frame':	3 obs. of  3 variables:
  $ x: Factor w/ 3 levels "aaa","bbb","ccc": 1 2 3
  $ y: Factor w/ 1 level "0": 1 1 1
  $ z: Factor w/ 1 level "0": 1 1 1

I thought the I() prevents character from becoming factors, right?
Secondly, how do I force y and z in the data frame to become numeric?

Thanks in advance
Joe



More information about the R-help mailing list