You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言使用dplyr的mutate生成dataframe新列不显示及调用报错问题

问题核心原因
  • dplyr 中的mutate函数不会直接修改传入的原始数据集,只会返回新增/修改列后的新数据集。原代码没有将mutate的运行结果赋值给变量,所以原始的heights对象始终没有新增ht_cm列,调用heights$ht_cm会返回NULL,计算均值时自然会报参数非数值的错误。
  • mutate函数本身不存在stringsAsFactor参数,原代码里写的这个参数完全无效,对结果没有任何影响。你误以为新增列是字符类型属于误判,本质是该列根本不存在于原始数据集中。
修正方案

将mutate返回的结果赋值回原变量(或赋值给新变量)即可,修正后代码如下:

library(dslabs)
data(heights)
library(dplyr)

# 把mutate返回的新数据集赋值回heights,覆盖原有对象
heights <- mutate(heights, ht_cm = height * 2.54)

str(heights) # 此时可正常查看到ht_cm列,类型为数值型
mean(heights$ht_cm) # 可正常计算均值
补充说明

如果不想覆盖原始的heights数据集,可以将结果赋值给新变量,例如heights_new <- mutate(heights, ht_cm = height * 2.54),后续操作都使用新变量即可。

内容的提问来源于stack exchange,提问作者Data Scientist to be

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 22:54:04