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]] ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html