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

使用box包时R函数无法识别数据框列变量的解决方法

解决box包下dplyr filter找不到数据框列的问题

这是因为box包的模块作用域改变了函数内的变量查找规则,dplyr的非标准求值默认会在函数环境里找verified,而不是自动关联到数据框的列。最简单的解决方法是用.data代词明确指定从数据框中取列,这也是tidyverse官方推荐的稳健写法:

修改后的代码如下:

box::use(
  tibble[...],
  dplyr[...],
  lubridate[...],
  r/core[...]
)

myFunction <- function(df){
  df = df %>%
    filter(.data$verified == TRUE)
  return(df)
}

你也可以直接用df$verified替代.data$verified,效果一样,但.data的写法更符合tidyverse的代码风格,在复杂管道里可读性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:10:28