dplyr::selectでvector出力はできない (メモ
# デフォルトの列選択
iris[, "Species"] %>%
head
## [1] setosa setosa setosa setosa setosa setosa
## Levels: setosa versicolor virginica
# データフレーム構造を維持
iris[, "Species", drop = F] %>%
head
## Species
## 1 setosa
## 2 setosa
## 3 setosa
## 4 setosa
## 5 setosa
## 6 setosa
と同じイメージでdplyr::select
でデータフレームからベクトルを取り出そうとして、よく怒られる
iris %>%
select(Species, drop = T)
## Error: `T` must resolve to integer column positions, not a logical vector
Hadley Wickham (dplyrの作成者) が書いているとおり、dplyr::select
にはデータフレームからベクトルを出力する仕様はない
上のページを見ていると、「magrittr::extract2
が便利だよ」とあった
iris %>%
magrittr::extract2(5) %>%
head
## [1] setosa setosa setosa setosa setosa setosa
## Levels: setosa versicolor virginica
iris %>%
magrittr::extract2("Species") %>%
head
## [1] setosa setosa setosa setosa setosa setosa
## Levels: setosa versicolor virginica
複数列に対する挙動が変なのでextract2
の中身を見てみたら、がっかりした
iris %>%
magrittr::extract2(4:5)
## [1] 0.2
print(extract2)
## .Primitive("[[")
参考
Extract a dplyr tbl column as a vector (Stack Overflow)
devtools::session_info()
## Session info -------------------------------------------------------------
## setting value
## version R version 3.5.0 (2018-04-23)
## system x86_64, darwin15.6.0
## ui X11
## language (EN)
## collate en_US.UTF-8
## tz Australia/Brisbane
## date 2018-05-16
## Packages -----------------------------------------------------------------
## package * version date source
## assertthat 0.2.0 2017-04-11 CRAN (R 3.5.0)
## backports 1.1.2 2017-12-13 CRAN (R 3.5.0)
## base * 3.5.0 2018-04-24 local
## bindr 0.1.1 2018-03-13 CRAN (R 3.5.0)
## bindrcpp 0.2.2 2018-03-29 CRAN (R 3.5.0)
## blogdown 0.6 2018-04-18 CRAN (R 3.5.0)
## bookdown 0.7 2018-02-18 CRAN (R 3.5.0)
## compiler 3.5.0 2018-04-24 local
## datasets * 3.5.0 2018-04-24 local
## devtools 1.13.5 2018-02-18 CRAN (R 3.5.0)
## digest 0.6.15 2018-01-28 CRAN (R 3.5.0)
## dplyr * 0.7.4 2017-09-28 CRAN (R 3.5.0)
## evaluate 0.10.1 2017-06-24 CRAN (R 3.5.0)
## glue 1.2.0 2017-10-29 CRAN (R 3.5.0)
## graphics * 3.5.0 2018-04-24 local
## grDevices * 3.5.0 2018-04-24 local
## htmltools 0.3.6 2017-04-28 CRAN (R 3.5.0)
## knitr 1.20 2018-02-20 CRAN (R 3.5.0)
## magrittr * 1.5 2014-11-22 CRAN (R 3.5.0)
## memoise 1.1.0 2017-04-21 CRAN (R 3.5.0)
## methods * 3.5.0 2018-04-24 local
## pillar 1.2.1 2018-02-27 CRAN (R 3.5.0)
## pkgconfig 2.0.1 2017-03-21 CRAN (R 3.5.0)
## R6 2.2.2 2017-06-17 CRAN (R 3.5.0)
## Rcpp 0.12.16 2018-03-13 CRAN (R 3.5.0)
## rlang 0.2.0 2018-02-20 CRAN (R 3.5.0)
## rmarkdown 1.9 2018-03-01 CRAN (R 3.5.0)
## rprojroot 1.3-2 2018-01-03 CRAN (R 3.5.0)
## stats * 3.5.0 2018-04-24 local
## stringi 1.2.2 2018-05-02 cran (@1.2.2)
## stringr 1.3.1 2018-05-10 cran (@1.3.1)
## tibble 1.4.2 2018-01-22 CRAN (R 3.5.0)
## tools 3.5.0 2018-04-24 local
## utils * 3.5.0 2018-04-24 local
## withr 2.1.2 2018-03-15 CRAN (R 3.5.0)
## xfun 0.1 2018-01-22 CRAN (R 3.5.0)
## yaml 2.1.18 2018-03-08 CRAN (R 3.5.0)