最近,我已tidyr
在运行R和程序包版本略有不同的两台不同计算机(PC和Mac)上更新到1.0.0版。
现在的打印输出tiydr::nest
显示细微差别。我的问题似乎与此帖子有关,但与之无关。我对如何在newnest
和之间创建相同的结果不感兴趣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"
由reprex软件包(v0.3.0)创建于2019-11-25
这是我的电脑的输出:
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"
由reprex软件包(v0.3.0)创建于2019-11-25
对我来说,这似乎是一个印刷问题。然而,与在该篇文章在这里我没有扭捏在我的机器的既不是我的打印选项。
我加载的唯一软件包是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
不能解决问题。我想从降级到低版本,我的电脑上的克制ellipsis
,rlang
,stringi
和utils
。
解决方案:正如Matt在回答中所暗示的那样,问题的根源已在pillar
包装中。从版本更新1.2.1
以1.4.2
解决打印问题。我把这个问题当作一个tidyr
问题来解决,但实际上是一个问题(如何打印出嵌套的问题)。因此,我也应该研究tibble
软件包的依赖关系。
我不是100%的人,但是我认为这是由于的打印选项所致pillar
,根据此,您可以覆盖可能产生所需内容的打印:
print.tbl_df <- function(x, ...) {
print.data.frame(x, ...)
invisible(x)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句