将 csv 文件导入 R - 读取为字符的因素
Importing csv file to R - factors read as characters
R 的新手。当导入 csv 文件时,列被读取为字符,而实际上它们是 - 或者应该是 - 因素。所讨论的所有三列都只有两个级别(yes/no 和 male/female)。
我的尝试:
在“导入文本数据”对话框中,我通过插入逗号分隔的因子列表将列更改为因子。
> 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"
如图所示,'Gender' 和 'Smoke' 列在它们应该是因子时被读取为字符。
如何解决?
使用可以将字符转换为因子
LungCapDataCSVnew$Smoke<-as.factor(LungCapDataCSVnew$Smoke)
LungCapDataCSVnew$Gender<-as.factor(LungCapDataCSVnew$Gender)
R 新手。
建议网站- http://cran.r-project.org/manuals.html
谢谢
奇怪的是,没有任何额外参数的简单 read.csv()
不会自动读入您的字符作为因素。
使用 file <- read.csv("~/file.csv")
导入文件后,您可以尝试
i <- sapply(file, is.character)
file[i] <- lapply(file[i], as.factor)
将所有字符列转换为因子
正如我刚刚发现的那样:
read.csv 似乎检测到因素和水平
read_csv 不会,它只是将列标题指定为一个字符。
R 的新手。当导入 csv 文件时,列被读取为字符,而实际上它们是 - 或者应该是 - 因素。所讨论的所有三列都只有两个级别(yes/no 和 male/female)。
我的尝试: 在“导入文本数据”对话框中,我通过插入逗号分隔的因子列表将列更改为因子。
> 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"
如图所示,'Gender' 和 'Smoke' 列在它们应该是因子时被读取为字符。
如何解决?
使用可以将字符转换为因子
LungCapDataCSVnew$Smoke<-as.factor(LungCapDataCSVnew$Smoke)
LungCapDataCSVnew$Gender<-as.factor(LungCapDataCSVnew$Gender)
R 新手。 建议网站- http://cran.r-project.org/manuals.html
谢谢
奇怪的是,没有任何额外参数的简单 read.csv()
不会自动读入您的字符作为因素。
使用 file <- read.csv("~/file.csv")
导入文件后,您可以尝试
i <- sapply(file, is.character)
file[i] <- lapply(file[i], as.factor)
将所有字符列转换为因子
正如我刚刚发现的那样: read.csv 似乎检测到因素和水平 read_csv 不会,它只是将列标题指定为一个字符。