使用R的read_csv读取CSV文件时遇语法错误及任务疑问
R read_csv语法错误修复与解析警告说明
语法错误修复
你的代码存在两处关键问题:
- cols()默认列类型写法错误:
readr的cols()函数不支持everything() = col_character()这种写法,指定剩余列默认类型需要用.default参数。 - col_select参数写法错误:排除以"Weight"开头的列,直接用
!starts_with("Weight")即可,不需要用公式格式。
修复后的完整代码:
library(readr) guitars <- read_csv( file = file_path, col_types = cols( `Purchase Price` = col_number(), `Insured Value` = col_number(), `Purchase Date` = col_date(format = ""), .default = col_character() ), col_select = !starts_with("Weight") )
解析警告的原因
代码运行成功后出现的解析警告,通常由以下情况导致:
Purchase Price或Insured Value列中存在非数值内容(比如货币符号$、千位分隔符,、多余空格),read_csv强制转换为数值型时会忽略这些无法解析的内容,同时抛出警告。Purchase Date列中存在不符合默认日期格式(ISO8601,即YYYY-MM-DD)的字符串,read_csv无法解析这类日期,会将其设为NA并触发警告。
你可以运行problems(guitars)查看具体哪一行、哪一列出现了解析异常,再针对性调整数据或修改col_date()的format参数匹配实际日期格式。
内容的提问来源于stack exchange,提问作者Nolan C
相关产品推荐
相关产品推荐

