【发布时间】:2020-10-16 01:17:40
【问题描述】:
我想在dplyr 中使用across() 函数,但出现错误。例如,运行
iris %>%
group_by(Species) %>%
summarise(across(starts_with("Sepal"), mean))
给我
Error in across(starts_with("Sepal"), mean) :
could not find function "across"
across() 是最近在dplyr 中引入的https://towardsdatascience.com/what-you-need-to-know-about-the-new-dplyr-1-0-0-7eaaaf6d78ac。但是,包dplyr 已更新并加载
packageVersion('dplyr')
[1] ‘1.0.0’
检查内部dplyr
ls("package:dplyr")
[1] "%>%" "add_count" "add_count_" "add_row" "add_rownames" "add_tally"
[7] "add_tally_" "all_equal" "all_vars" "anti_join" "any_vars" "arrange"
[13] "arrange_" "arrange_all" "arrange_at" "arrange_if" "as_data_frame" "as_label"
我发现across 不存在,但是如果我在帮助程序?across 中查找该函数,我会看到解释across 功能的经典页面。
如何让across 工作?
----- 编辑-----
我的sessionInfo()如下:
> sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.6
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] tidyselect_1.1.0 dplyr_1.0.0
loaded via a namespace (and not attached):
[1] Rcpp_1.0.3 cellranger_1.1.0 pillar_1.4.2 compiler_3.6.1 forcats_0.4.0 tools_3.6.1 jsonlite_1.6 lubridate_1.7.4 lifecycle_0.2.0
[10] tibble_2.1.3 nlme_3.1-140 gtable_0.3.0 lattice_0.20-38 pkgconfig_2.0.3 rlang_0.4.6 cli_1.1.0 rstudioapi_0.10 haven_2.1.1
[19] xml2_1.2.2 httr_1.4.1 stringr_1.4.0 generics_0.0.2 vctrs_0.3.1 hms_0.5.1 grid_3.6.1 glue_1.4.1 R6_2.4.0
[28] fansi_0.4.0 readxl_1.3.1 readr_1.3.1 modelr_0.1.5 tidyr_1.0.0 purrr_0.3.3 ggplot2_3.2.1 magrittr_1.5 backports_1.1.4
[37] scales_1.0.0 rvest_0.3.4 assertthat_0.2.1 tidyverse_1.2.1 colorspace_1.4-1 utf8_1.1.4 stringi_1.4.3 lazyeval_0.2.2 munsell_0.5.0
[46] broom_0.5.2 crayon_1.3.4
> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/3.6/Resources/library"
【问题讨论】:
-
如果你用
dplyr::across更明确地调用它,它有效吗? -
不,它没有。
Error: 'across' is not an exported object from 'namespace:dplyr' -
加载包后是否在 sessionInfo 中列出了 dplyr 1.0.0?我想知道您是否在其他地方有另一个版本的 dplyr 导致问题。也许还添加您的操作系统信息;我无法在 Windows 7 R 4.0 中重现该问题。
-
我将会话信息和
.libPath()输出附加到我的问题中 -
似乎可以在我的系统上运行(最近更新的 R 和所有软件包)。您是否尝试过更新软件包并先重新启动?然后也许更新到 R 4.0.1?可能无法解决但值得一试?