最近更新到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 小( glue
、 purrr
和 tibble
),但这并不能解决问题。我想避免在我的 PC 上为 ellipsis
降级到较低版本, rlang
, stringi
和 utils
.解决方案 :正如马特在他的回答中暗示的那样,问题的根源在于
pillar
包裹。从版本更新 1.2.1
至 1.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/