Как вы используете функцию выбора в dplyr для возврата результатов? - PullRequest
0 голосов
/ 05 апреля 2020

Мои данные выглядят так в таблице (которую я назвал таблицей):

столбец 1: (яблоки A, яблоки B, бананы A, бананы B)

столбец 2 : (1, 2, 3, 4)

Я хочу создать вектор всех столбцов 1, заканчивающихся на A, и всех столбцов 1, заканчивающихся на B. Я использую: A<-select(table, ends_with("A")), в попытка получить значение «Яблоки А», «Яблоки Б.». Вместо этого я получаю фрейм данных с 4 наблюдениями и 0 переменными. Я попытался A<-grepl("A", fixed=TRUE, table$column1), но это дало мне истину, ложь, истину, ложь, что не так. что я хочу. Я, наверное, упускаю что-то глупо очевидное, не так ли?

1 Ответ

1 голос
/ 05 апреля 2020

Используйте stringr для работы со строками:

$ означает, что заканчивается, ^ означает, что начинается с

library(stringr)

df %>% filter(str_detect(column_1, "A$"))
  column_1 column_2
1  Apples A        1
2 Bananas A        3

# or :

> df %>% filter(str_detect(column_1, "^Bananas"))
   column_1 column_2
1 Bananas A        3
2 Bananas B        4

# or use both at the same time:

> df %>% filter(str_detect(column_1, "^Bananas A$")) 
   column_1 column_2
1 Bananas A        3

############ then use select to only select the first column: column_1  

df %>% filter(str_detect(column_1, "A$")) %>%  select(column_1)

# same as:
df %>% filter(str_detect(1, "A$")) %>%  select(1)

########### Finally to store it in a vector "myvector" you can use pull()

df %>% filter(str_detect(1, "A$")) %>%  select(1) %>% pull(1) -> myvector

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...