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

使用mutate_at运行pivot vignette示例时出现parse_vector()错误求助

问题解决方法

错误原因

报错is.character(x) is not TRUE,核心问题有两个可能:

  • 未加载readr包,parse_date()是该包的专属函数,未加载时会导致调用异常;
  • mutate_at是dplyr旧版语法,新版兼容性不如mutate(across(...))。

修正方案

方案1:加载依赖包+使用新版dplyr语法

library(tidyverse) # 一次性加载dplyr和readr

family <- tribble(
  ~family,  ~dob_child1,  ~dob_child2, ~gender_child1, ~gender_child2,
  1L, "1998-11-26", "2000-01-29",             1L,             2L,
  2L, "1996-06-22",           NA,             2L,             NA,
  3L, "2002-07-11", "2004-04-05",             2L,             2L,
  4L, "2004-10-10", "2009-08-27",             1L,             1L,
  5L, "2000-12-05", "2005-02-28",             2L,             1L,
)

# 用across替代mutate_at,明确指定readr的parse_date函数
family <- family %>% 
  mutate(across(starts_with("dob"), readr::parse_date))

方案2:使用基础R函数替代

如果不想依赖readr包,直接用基础R的as.Date即可,无需额外加载包:

library(dplyr)

family <- family %>% 
  mutate(across(starts_with("dob"), as.Date))

验证

运行完修正代码后,用str(family)查看结构,会看到dob_child1和dob_child2列类型变为Date,说明转换成功。

内容的提问来源于stack exchange,提问作者rez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:53:10