結論としては、dplyr::pull または unlist を使うことで vector にできました。
やりたいこと
例えば次のように1列取得すると、
ret <- head(iris) %>% dplyr::select(Sepal.Length)ret には次のように1列の data.frame が返されます。

欲しいのは、以下を実行したときの様に vector だったのですが、パイプ演算子で完結させたい。という話です。
tmp <- head(iris) %>% dplyr::select(Sepal.Length)
ret <- as.vector(tmp$Sepal.Length)
# ret の中身は
# c(5.1, 4.9, 4.7, 4.6, 5.0, 5.4)dplyr::pull を使う
ret <- head(iris) %>%
dplyr::select(Sepal.Length) %>%
dplyr::pull()dplyr にやりたいことそのものな pull がありました。
unlist を使う
ret <- head(iris) %>%
dplyr::select(Sepal.Length) %>%
unlist(use.names = FALSE)base の unlist も使えました。
実際に使うなら、dplyr::pull の方でしょうか。


コメント