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

tidy函数处理USAboundaries数据报错:region参数未被识别

解决tidy(us_states(), region = "geoid")的报错问题

这个报错的核心原因很明确:你当前调用的tidy函数不是broom包的那个数据整理函数,而是被psych包的同名函数(或者说别名)覆盖了——错误提示里的psych::describe(x, ...)说明,当你输入tidy()时,R实际执行的是psych包的describe函数,而它完全不认识region这个参数。

快速解决方案

直接指定使用broom包的命名空间来调用tidy,绕过函数名冲突的问题:

library(USAboundaries)
library(broom)
# 明确调用broom的tidy函数
states_dat <- broom::tidy(us_states(), region = "geoid")

为什么会出现这个问题?

R里不同包可能会导出同名函数,当你加载多个包时,后加载的包的函数会覆盖先加载的。比如如果你先加载了psych包,再加载broom,那tidy会是broom的;但如果反过来,或者有其他包也导出了tidy,就会出现这种覆盖问题。你可以用下面的代码验证当前tidy函数的来源:

find("tidy")
# 如果结果里有"package:psych",就说明被覆盖了

其他可选方案

  1. 调整包的加载顺序:确保broom在可能冲突的包(比如psych)之后加载,这样broom的tidy会成为默认调用的函数:
    library(psych) # 先加载其他包
    library(broom) # 后加载broom,覆盖同名函数
    states_dat <- tidy(us_states(), region = "geoid")
    
  2. 卸载冲突包:如果你暂时不需要psych包,可以移除它:
    detach("package:psych", unload = TRUE)
    states_dat <- tidy(us_states(), region = "geoid")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:10:09