Роман Луштрик дал отличный ответ, однако обозначение $
часто оказывается трудным для использования в трубке. В канале используйте dplyr
функцию pull()
.
# setting up
library(tidyverse)
# import tidyverse for dplyr, tibble, and pipe
df <- data.frame(Symbol = c("IDEA","PFC","RPL","SOBHA"))
> df
Symbol
1 IDEA
2 PFC
3 RPL
4 SOBHA
Теперь, когда фрейм данных настроен, мы сначала сделаем несколько случайных изменений фрейма данных, чтобы показать, что он будет работать в конвейере, и в конце мы будем использовать pull()
.
myvector <- df %>%
mutate(example_column_1 = 1:4, example_column_2 = example_column_1^2) %>% #random example function
arrange(example_column_1) %>% #random example function
pull(Symbol) # finally, the pull() function; make sure to give just the column name as an argument
Вы даже можете дополнительно манипулировать вектором в конвейере после функции pull()
.
> myvector
[1] IDEA PFC RPL SOBHA
Levels: IDEA PFC RPL SOBHA
> typeof(myvector)
[1] "integer"
typeof(myvector)
возвращает целое число, потому что так хранятся факторы, где различные уровни фактора хранятся как целые числа (я думаю, что они хранятся именно так, по крайней мере). Если вы хотите преобразовать в вектор символов, просто используйте as.character(myvector)
.
В заключение, используйте функцию dplyr
pull()
(и введите только имя столбца, который вы хотите извлечь), когда вы хотите извлечь вектор из фрейма данных или таблицы в канале.
person
Phillip Long
schedule
05.12.2020