如何解决mutate() 函数中出现的vec_is_vector() 已被废弃错误?

编程语言 2026-07-09

当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 存在问题。
x vec_is_vector() 已失效。
i输入 x3 的值是 ht + age
运行 rlang::last_trace() 以查看错误发生的位置。

谢谢;如能提供帮助,将不胜感激。

解决方案

The deprecated C callable for vec_is_vector() has been removedvctrs 版本 "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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章