如何解决dplyr中last_col()函数的select报错问题?
问题解决方法
核心原因
两台电脑的dplyr版本不一致。last_col()支持直接传入向量参数(比如5:0)是较新版本dplyr的特性,旧版本不兼容这种写法,因此报错。
解决方案
方案1:升级dplyr到最新版本
在报错的笔记本上执行以下命令完成升级:
install.packages("dplyr")
升级后重启R会话,再运行原代码即可正常执行。
方案2:兼容旧版本的代码改写
如果暂时无法升级,可将last_col(5:0)替换为基于列数的索引写法,实现完全等价的列选取效果:
library(dplyr) df %>% select(c(1:3), (ncol(df)-5):ncol(df))
解释:ncol(df)获取数据框总列数,(ncol(df)-5):ncol(df)对应原代码中last_col(5:0)选取的从倒数第6列到最后一列的范围。
验证版本差异
可在两台电脑分别执行以下命令查看dplyr版本,确认差异:
packageVersion("dplyr")
一般来说,支持last_col()向量参数的版本需在1.0.5及以上。
内容的提问来源于stack exchange,提问作者KNOCK
相关产品推荐
相关产品推荐

