我有一个数据文件c("A","T","B","F")
。read.table将“T”记为TRUE,将“F”记为FALSE,如何避免?
当我使用:
read.csv(myfile,header=F,stringsAsFactors=F)
[R字解释为T
和TRUE
作为F
FALSE
难道我做错了什么?
我有一个数据文件c("A","T","B","F")
。read.table将“T”记为TRUE,将“F”记为FALSE,如何避免?
当我使用:
read.csv(myfile,header=F,stringsAsFactors=F)
[R字解释为T
和TRUE
作为F
FALSE
难道我做错了什么?
如果你的所有列字符,那么试试这个:
# replace text = . with your filename
read.csv(text="A,B,T,T", header=FALSE, stringsAsFactors=FALSE,
colClasses = c("character"))
否则,你就必须要通过每列的类型colClasses
为:colClasses = c("numeric", "numeric", "character", ...)
感谢这样的我快速回复 – nopeva 2013-04-25 12:31:19
我碰到类似的问题在这里是解决方案:
#dummy data
df <- read.csv(text="
A,B,T,T,F
T,T,F,T,text1
A,T,NA,F,T",
header=FALSE, stringsAsFactors=FALSE)
#data
df
# V1 V2 V3 V4 V5
# 1 A B TRUE TRUE F
# 2 T T FALSE TRUE text1
# 3 A T NA FALSE T
#convert logical columns to single letters
df[,sapply(df,class) == "logical"] <-
sapply(df[,sapply(df,class) == "logical"],
function(i) substr(as.character(i),1,1))
#result
df
# V1 V2 V3 V4 V5
# 1 A B T T F
# 2 T T F T text1
# 3 A T <NA> F T
如果您不想更改所有列的类,那么revalue也可以工作,但对于创建简单的ch愤怒到一列。
df$V3 <- as.factor(revalue(df$V3, c("TRUE" = "T", "FALSE" = "F")))
错误在is.factor(x):找不到函数“revalue”===> library(“plyr”) – 2018-01-17 15:06:40
此外,我需要“... < - as.factor(revalue (as.character(df $ V3),c(....“ – 2018-01-17 15:12:35
不,只是遇到了一个众所周知的陷阱:-)。所有遗传学家都在测序基因时遇到这个问题! – 2013-04-25 13:13:41