使用R中mutate函数在指定位置添加列出错的原因排查
问题原因与解决办法
核心原因是dplyr版本过低:
mutate()的.before和.after参数是dplyr 1.0.0及以上版本才支持的特性。如果你的dplyr版本早于1.0.0,函数无法识别这两个特殊参数,会把.before当作普通列名,生成值为1的.before列,而非调整新列位置。验证当前dplyr版本:运行代码
packageVersion("dplyr"),若返回版本号小于1.0.0,即可确认是版本问题。两种解决方式:
- 更新dplyr到最新版:执行
install.packages("dplyr"),更新后原代码starwars %>% mutate(new_column = "Other", .before = 1)即可正常将新列插入到第一列前。 - 不更新版本的替代方案:结合
select()实现列位置调整,代码为starwars %>% mutate(new_column = "Other") %>% select(new_column, everything())
- 更新dplyr到最新版:执行
内容的提问来源于stack exchange,提问作者Eleanor
相关产品推荐
相关产品推荐

