read.table的内容为;";真实且;F";如假,如何避免?
我有一个包含数据read.table的内容为;";真实且;F";如假,如何避免?,r,read.table,R,Read.table,我有一个包含数据c(“a”、“T”、“B”、“F”)的文件 当我使用: 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, colC
c(“a”、“T”、“B”、“F”)
的文件
当我使用:
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(“数字”、“数字”、“字符”、…)
我遇到了类似的问题,这里是解决方案:
#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
#虚拟数据
df如果您不想更改所有列的类,重估也可以,但最好对一列进行简单更改
df$V3 <- as.factor(revalue(df$V3, c("TRUE" = "T", "FALSE" = "F")))
df$V3不,只是遇到了一个众所周知的陷阱:-)。所有的遗传学家在测序基因时都会遇到这种情况!is.factor(x)中出错:找不到函数“重估”=>库(“plyr”)