Colleages
I am running R 2.1.0 on a Mac (same problem occurs in Linux). In
some situations, I have mixed text/numeric data that is stored as
characters in a matrix. If I convert this matrix to a dataframe, the
numeric data becomes factors, not what I intend.
TEXT <- paste("Text", 1:4, sep="")
NUMBERS <- 10 + 4:1
MATRIX <- cbind(TEXT, NUMBERS)
FRAME <- as.data.frame(MATRIX)
> str(FRAME)
`data.frame': 4 obs. of 2 variables:
$ TEXT : Factor w/ 4 levels "Text1","Text2",..: 1 2 3 4
$ NUMBERS: Factor w/ 4 levels "11","12","13",..: 4 3 2 1
One work-around is to write the matrix (or the dataframe) to a file,
then read the file back using the as.is argument.
write.table(MATRIX, "JUNK", row.names=F)
NEWFRAME <- read.table("JUNK", as.is=T, header=T)
> str(NEWFRAME)
`data.frame': 4 obs. of 2 variables:
$ TEXT : chr "Text1" "Text2" "Text3" "Text4"
$ NUMBERS: int 14 13 12 11
This restores the NUMBERS to their intended mode (integers, not
factors). The text column is also not read as a factor (not a
problem for me).
It appears that the function AsIs [I(x)] would enable me to
accomplish this without the write/read steps. However, it is not
obvious to me how to implement I(x). Can anyone advise?
Thanks in advance.
Dennis Fisher
Dennis Fisher MD
P < (The "P Less Than" Company)
Phone: 1-866-PLessThan (1-866-753-7784)
Fax: 1-415-564-2220
www.PLessThan.com
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html