4
中收集粗牙你有沒有看到使用tidyr::gather
函數收集tibble
類的最新問題?在使用data.frame
上的簡單select
或rename
函數後,現在dplyr
返回tibble
。無法在R
有什麼辦法可以解決這個問題,而不是將tibble
類更改爲data.frame
?
簡單例子如下
> library(tibble)
> library(tidyr)
>
> head(gather(iris, Species))
Species Species value
1 setosa Sepal.Length 5.1
2 setosa Sepal.Length 4.9
3 setosa Sepal.Length 4.7
4 setosa Sepal.Length 4.6
5 setosa Sepal.Length 5.0
6 setosa Sepal.Length 5.4
>
> head(gather(as_tibble(iris), Species))
Error: Each variable must have a unique name.
Problem variables: 'Species'
>
> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.5 LTS
locale:
[1] LC_CTYPE=pl_PL.UTF-8 LC_NUMERIC=C LC_TIME=pl_PL.UTF-8
[4] LC_COLLATE=pl_PL.UTF-8 LC_MONETARY=pl_PL.UTF-8 LC_MESSAGES=pl_PL.UTF-8
[7] LC_PAPER=pl_PL.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=pl_PL.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] tidyr_0.6.0 tibble_1.2
loaded via a namespace (and not attached):
[1] magrittr_1.5 assertthat_0.1 tools_3.3.1 Rcpp_0.12.6
這裏還張貼https://github.com/hadley/tidyr/issues/231 –
這是荒謬的收集工作的「:這可以通過提供的名稱爲
key
和value
列自己,比如可以實現tbl'與'data.frame'一樣,但是與最新版本的dplyr不同,它在類似語法的'tibbles'上不起作用。由於這種不兼容性,我將不得不重寫許多代碼行 –@Axeman您可以發表您的評論和答案,請 –