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

将csv文件导入R-因子读取为字符,r,csv,import,character,logical-operators,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(le

对于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"
>LungCapDataCSVnew视图(文件)
>班级(性别)
[1] “角色”
>级别(烟雾)
[1] “角色”
如图所示,“性别”和“吸烟”列在本应被视为因素时被视为字符


如何解决这个问题?

使用可以将字符变成因子

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

LungCapDataCSVnew$Smoke奇怪的是,没有任何额外参数的
read.csv()
不会自动读取字符作为因子

导入带有
文件的文件后,正如我刚才发现的:
read.csv似乎可以检测到各种因素和水平

read_csv没有,它只是将列标题指定为一个字符。

可能只是使用
read.csv
。我不明白您指的是没有数据框的列。也许您的工作区中有一个旧的附加数据框?
class(LungCapDataCSVnew$Smoke)
显示了什么?
str(LungCapDataCSVnew)
怎么样?你能提供你的数据样本吗?谢谢-很好的帮助
i <- sapply(file, is.character)
file[i] <- lapply(file[i], as.factor)