Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
read.table的内容为;";真实且;F";如假,如何避免?_R_Read.table - Fatal编程技术网

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”)