将csv文件导入R - 因子读为字符

时间:2017-01-24 17:21:47

标签: r csv import character logical-operators

R的新功能。导入csv文件时,实际上 - 或应该是 - 因素时,列被读取为字符。所讨论的所有三列只有两个级别(是/否和男/女)。

我的尝试: 在“导入文本数据”对话框中,我通过插入逗号分隔的因子列表将列更改为因子。

> LungCapDataCSVnew <- read_csv("~/file.csv", 
  col_types = cols(Caesarean = col_factor(levels = c("no", 
  "yes")), Gender = col_factor(levels = c("male", 
  "female")), Smoke = col_factor(levels = c("no", 
  "yes"))))

> View(file)

> class(Gender)
[1] "character"

> class(Smoke)
[1] "character"

如图所示,&#39;性别&#39;和&#39; Smoke&#39;当列应该是因素时,列读作字符。

如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

奇怪的是,简单地read.csv()没有任何额外的参数并不能自动将你的角色作为因素阅读。

使用file <- read.csv("~/file.csv")导入文件后,您可以尝试

i <- sapply(file, is.character)
file[i] <- lapply(file[i], as.factor)

将所有字符列转换为因子

答案 1 :(得分:0)

使用可以将字符更改为因子

LungCapDataCSVnew$Smoke<-as.factor(LungCapDataCSVnew$Smoke)
LungCapDataCSVnew$Gender<-as.factor(LungCapDataCSVnew$Gender)

R的新手。 建议网站 - http://cran.r-project.org/manuals.html

由于

答案 2 :(得分:-2)

正如我刚刚发现的那样: read.csv似乎检测因素和水平 read_csv没有,它只是将列标题指定为一个字符。