我有一個數據文件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