結論としては、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 の方でしょうか。
コメント