gpt4 book ai didi

r - tidyr::nest 在不同系统和包/R 版本上的不同行为

转载 作者:行者123 更新时间:2023-12-01 04:25:24 29 4
gpt4 key购买 nike

最近更新到tidyr运行略有不同的 R 和包版本的两台不同机器(PC 和 mac)上的 1.0.0 版。
tiydr::nest的打印输出现在显示出细微的差异。我的问题似乎与 this post 有关,但不是。我对如何在新 nest 之间创建相同的结果不感兴趣。和 nest_legacy (这种差异是上面帖子的内容)。我对为什么会出现不同的打印输出很感兴趣,尽管相同 tidyr使用了版本,以及如何解决此问题(我的 PC 的打印输出看起来不正确)。

这是我的 mac 上的输出:

library(tidyr)

nested_tbl_mac <- iris %>%
tidyr::nest(data = c(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width))

nested_tbl_mac
#> # A tibble: 3 x 2
#> Species data
#> <fct> <list<df[,4]>>
#> 1 setosa [50 × 4]
#> 2 versicolor [50 × 4]
#> 3 virginica [50 × 4]

nested_tbl_mac[[2]] %>% class
#> [1] "vctrs_list_of" "vctrs_vctr"

创建于 2019-11-25 由 reprex package (v0.3.0)

这是我电脑的输出:
library(tidyr)

nested_tbl_pc <- iris %>%
tidyr::nest(data = c(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width))

nested_tbl_pc
#> # A tibble: 3 x 2
#> Species data
#> <fct> <S3: vctrs_list_of>
#> 1 setosa 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.8, 4~
#> 2 versicolor 7.0, 6.4, 6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5.0, 5.9, 6~
#> 3 virginica 6.3, 5.8, 7.1, 6.3, 6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6~

nested_tbl_pc[[2]] %>% class
#> [1] "vctrs_list_of" "vctrs_vctr"

创建于 2019-11-25 由 reprex package (v0.3.0)

对我来说,这似乎是一个打印问题。但是,与此不同的是 post here我没有在我的两台机器上调整我的打印选项。

我加载的唯一包是 tidyr和所有基础包。
(.packages())
#> [1] "stats" "graphics" "grDevices" "utils" "datasets" "methods"
#> [7] "base"

最后,这里是 tidyr的版本比较以及所有由 tidyr 导入的包在我的两台机器上(最后一行显示的是 R 版本):
#>    package    version_pc version_mac
#> <chr> <chr> <chr>
#> 1 tidyr 1.0.0 1.0.0
#> 2 dplyr 0.8.3 0.8.3
#> 3 ellipsis 0.3.0 0.2.0.1
#> 4 glue 1.3.0 1.3.1
#> 5 magrittr 1.5 1.5
#> 6 purrr 0.3.2 0.3.3
#> 7 Rcpp 1.0.2 1.0.2
#> 8 rlang 0.4.1 0.4.0
#> 9 stringi 1.2.4 1.2.2
#> 10 tibble 2.1.1 2.1.3
#> 11 tidyselect 0.2.5 0.2.5
#> 12 utils 3.5.1 3.5.0
#> 13 vctrs 0.2.0 0.2.0
#> 14 lifecycle 0.1.0 0.1.0
#> 15 R.Version 3.5.1 3.5.0

更新 : 我现在已经更新了所有由 tidyr 导入的包在我的 PC 上,它的版本号比我的 mac 小( gluepurrrtibble ),但这并不能解决问题。我想避免在我的 PC 上为 ellipsis 降级到较低版本, rlang , stringiutils .

解决方案 :正如马特在他的回答中暗示的那样,问题的根源在于 pillar包裹。从版本更新 1.2.11.4.2解决了打印问题。我将问题视为 tidyr问题,但实际上是(嵌套的)小标题如何打印的问题。因此,我应该查看 tibble 的依赖关系。包也是如此。

最佳答案

我不是 100% 的,但我认为这是由于 pillar 的打印选项所致。 ,并根据 this您可以覆盖可能会产生您正在寻找的内容的打印:

print.tbl_df <- function(x, ...) {
print.data.frame(x, ...)
invisible(x)
}

关于r - tidyr::nest 在不同系统和包/R 版本上的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59033323/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com