R计算数据框变量均值时出现argument is not numeric or logical报错如何解决
问题原因
dplyr::select() 函数返回的是单列数据框对象,而 mean() 仅支持接收数值向量/逻辑向量作为输入,因此触发类型不匹配报错。
解决方法
你可以任选以下任意一种方案修改代码:
- 用
pull()代替select()直接提取列生成向量:
x <- all_trips_cleaned %>% pull(ride_length) mean_ride_length <- mean(x)
- 对已提取的单列数据框,手动提取列后计算均值:
x <- all_trips_cleaned %>% select(ride_length) # 用$提取对应列的向量再计算 mean_ride_length <- mean(x$ride_length)
- 直接在管道链中完成计算,无需单独赋值中间变量:
mean_ride_length <- all_trips_cleaned %>% pull(ride_length) %>% mean()
如果调整后仍有报错,可以先运行 class(all_trips_cleaned$ride_length) 确认该列的类型确实为数值型即可。
内容的提问来源于stack exchange,提问作者Lucia Miller
相关产品推荐
相关产品推荐

