如何解决mutate() 函数中出现的vec_is_vector() 已被废弃错误?
当R 提示因为 vec_is_vector 已弃用而导致输入问题时,如何让来自 dplyr 包的 mutate 函数继续工作?
我最近更新了R,发现一些旧代码不再能正常工作。我用网上找到的、针对相同函数的一段代码进行了测试,结果也出现相同的错误(source),请问有没有方法修正语法,以便我仍然可以使用mutate()?
示例代码:
library(dplyr)
d <- data.frame( name = c("Abhi", "Bhavesh", "Chaman", "Dimri"),
age = c(7, 5, 9, 16),
ht = c(46, NA, NA, 69),
school = c("yes", "yes", "no", "no") )
mutate(d, x3 = ht + age)
d
错误信息:
在
h()处出错:
! 与mutate()的输入x3存在问题。
xvec_is_vector()已失效。
i输入x3的值是ht + age。
运行rlang::last_trace()以查看错误发生的位置。
谢谢;如能提供帮助,将不胜感激。
解决方案
The deprecated C callable for vec_is_vector() has been removed 自 vctrs 版本 "0.7.0" 于16.01.2026发布以来,请尝试更新 dplyr 及其依赖项,即通过运行
update.packages(oldPkgs = "dplyr")
补充: 你也可以使用Base R的 transform(d, x3 = ht + age) 或 within(d, {x3 = ht + age}),或 collapse,它使用 tidy 语法,但只有一个Rcpp依赖 collapse::fmutate(d, x3 = ht + age)
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。