R语言导入csv数据集后无法将列转换为factor变量问题求助
你遇到的报错核心原因是你代码中使用的列名和数据集实际的列名不匹配,readr::read_csv()导入后返回的是tibble结构,使用$取不存在的列时不会触发base数据框的警告,只会直接返回NULL,就出现了你看到的typeof()返回NULL、赋值时提示0行数据、下标取值提示列不存在的问题。
解决步骤如下:
- 第一步:运行下方代码查看数据集的真实列名,核对
cancer_type的实际拼写,注意区分大小写、是否包含空格/特殊字符:
colnames(dataset)
- 第二步:如果列名包含空格、特殊字符或者大小写和你写的不一致,调用时要准确对应,带空格的列名需要用反引号包裹,比如实际列名为
Cancer Type的话写法如下:
# 查看列类型 typeof(dataset$`Cancer Type`) # 转换为factor dataset$`Cancer Type` = as.factor(dataset$`Cancer Type`)
- 补充说明:如果使用下标取tibble的单列,默认返回的是1列的tibble而非向量,转换类型时建议先提取为向量再操作,写法如下:
# 假设列名正确的前提下 dataset[,'cancer_type'] = as.factor(dataset[['cancer_type']]) # 或者用dplyr的pull函数更稳妥 library(dplyr) dataset$cancer_type = as.factor(pull(dataset, cancer_type))
内容的提问来源于stack exchange,提问作者user15300490
相关产品推荐
相关产品推荐

