使用R语言读取文本文件后修改列名出现长度不匹配报错求助
R读取文件修改列名报错的原因与解决方案
错误原因
你的文本文件字段间的分隔符为英文逗号,, 但调用read.table()时指定的sep参数是竖线|,R无法匹配到分隔符时会将每整行内容识别为单独1列,最终读取得到的sample对象仅1列。你尝试为其赋值3个列名,列名数量与实际列数不匹配,因此触发报错。
解决方法
可选两种方案修复:
- 方案1:调整
read.table()的分隔符参数为逗号:
sample <- read.table("sample.txt", sep = ",", header = F) colnames(sample) <- c("name","age","income")
- 方案2:直接使用默认适配逗号分隔文件的
read.csv()函数:
sample <- read.csv("sample.txt", header = F) colnames(sample) <- c("name","age","income")
修改后可先运行ncol(sample)确认列数为3,再执行列名赋值操作可完全规避该类报错。
内容的提问来源于stack exchange,提问作者Abdullah Alotaibi
相关产品推荐
相关产品推荐

