2013-04-25 38 views

回答

16

如果你的所有列字符,那麼試試這個:

# 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", ...)

+0

感謝這樣的我快速回復 – nopeva 2013-04-25 12:31:19

1

我碰到類似的問題在這裏是解決方案:

#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 
1

如果您不想更改所有列的類,那麼revalue也可以工作,但對於創建簡單的ch憤怒到一列。

df$V3 <- as.factor(revalue(df$V3, c("TRUE" = "T", "FALSE" = "F"))) 
+0

錯誤在is.factor(x):找不到函數「revalue」===> library(「plyr」) – 2018-01-17 15:06:40

+0

此外,我需要「... < - as.factor(revalue (as.character(df $ V3),c(....「 – 2018-01-17 15:12:35

相關問題