1. ホーム
  2. r

[解決済み] dplyr::select one column and output as vector [duplicate] (1列を選択してベクトルとして出力する)。

2023-07-12 17:36:53

質問

dplyr::select の結果はdata.frameになりますが、結果が1列の場合、vectorを返すようにする方法はないのでしょうか?

現在、私は余分なステップを行う必要があります ( res <- res$y を追加して、data.frame から vector に変換しています。

#dummy data
df <- data.frame(x = 1:10, y = LETTERS[1:10], stringsAsFactors = FALSE)

#dplyr filter and select results in data.frame
res <- df %>% filter(x > 5) %>% select(y)
class(res)
#[1] "data.frame"

#desired result is a character vector
res <- res$y
class(res)
#[1] "character"

以下のようなものです。

res <- df %>% filter(x > 5) %>% select(y) %>% as.character
res
# This gives strange output
[1] "c(\"F\", \"G\", \"H\", \"I\", \"J\")"

# I need:
# [1] "F" "G" "H" "I" "J"

どのように解決するのですか?

一番良い方法です(IMO)。

library(dplyr)
df <- data_frame(x = 1:10, y = LETTERS[1:10])

df %>% 
  filter(x > 5) %>% 
  .$y


dplyr 0.7.0では、pull()を使用できるようになりました。

df %>% filter(x > 5) %>% pull(y)