RMarkdown渲染报错:collector_value无适配collector_skip类对象的方法
问题
昨日在RMarkdown中成功运行以下代码:
trip_data_202208 <- read_csv(("/Users/mif06/Documents/ Cyclistic/CSV/202208_divvy_tripdata.csv"), col_types = cols_only(ride_id = col_character(), rideable_type = col_character(), started_at = col_character(), ended_at = col_character(), total_ride_time = col_time(format = ""), day_of_week = col_character(), start_station_name = col_character(), start_station_id = col_character(), end_station_name = col_character(), end_station_id = col_character(), start_lat = col_double(), start_lng = col_double(), end_lat = col_double(), end_lng = col_double(),member_casual = col_character() ) )
今日返回文件添加内容后,触发报错:
Error in UseMethod("collector_value") : no applicable method for 'collector_value' applied to an object of class "c('collector_skip', 'collector')"
报错原因
该错误来自readr包,核心是代码指定的列处理规则与实际CSV文件不匹配,导致readr生成collector_skip类型对象后,后续处理找不到对应方法。常见触发场景:
cols_only中指定的列在目标CSV文件中不存在;- 修改代码时误改了
col_types的定义; readr包版本更新后API行为发生变化。
解决步骤
验证CSV列匹配
确认CSV文件列名与cols_only中指定的列完全一致(包含大小写、拼写),运行以下代码查看所有列名:names(read_csv("/Users/mif06/Documents/Cyclistic/CSV/202208_divvy_tripdata.csv", n_max = 1))对比输出结果与
cols_only中的列定义,删除或修正不存在的列。排查代码修改点
检查今日添加的内容是否修改了原read_csv的参数,比如误删col_types中的列定义,或引入了与readr函数冲突的代码。简化测试定位问题
先注释掉col_types参数,运行基础读取代码:trip_data_202208 <- read_csv("/Users/mif06/Documents/Cyclistic/CSV/202208_divvy_tripdata.csv")若能正常加载,再逐步添加
col_types中的列定义,定位触发错误的具体列。更新readr包
若上述步骤无效,检查readr版本并更新至最新稳定版:packageVersion("readr") install.packages("readr")
内容的提问来源于stack exchange,提问作者Izzy Fraraccio
相关产品推荐
相关产品推荐

