R: Получение строки из всего кадра данных на основе шаблона - PullRequest
0 голосов
/ 16 марта 2020

Предполагая, что у меня есть кадр данных, содержащий эти данные:

Name   Card1    Card2
A      A11234   A24321
B      B11234   B24321
C      C11234   C24321
D      D11234   D24321
E      E11234   E24321

Я хотел бы извлечь строки из этого кадра данных на основе шаблонов "1234" и "4321" в символьной форме. Предполагая, что я извлек строки в переменную с именем all_cards , желаемый результат будет выглядеть следующим образом:

> all_cards
 [1] "A11234"           "A24321"            "B11234"          "B24321"        
 [5] "C11234"           "C24321"            "D11234"          "D24321"     
 [9] "E11234"           "E24321"        

> str(all_cards)
 chr [1:10] "A11234" "A24321" "B11234" "B24321" ...

Пожалуйста, сообщите, спасибо заранее!

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Вы можете unlist датафрейм и использовать grep.

all_cards <- unname(grep('1234|4321', unlist(df), value = TRUE))
0 голосов
/ 16 марта 2020

Вы можете использовать t, который транспонирует фрейм данных (исключая столбец name) и приводит его к матрице одновременно. Наконец, приведите к as.vector.

as.vector(t(dat[-1]))
# [1] "A11234" "A24321" "B11234" "B24321" "C11234" "C24321" "D11234" "D24321" "E11234"
# [10] "E24321"

Данные

dat <- structure(list(Name = c("A", "B", "C", "D", "E"), Card1 = c("A11234", 
"B11234", "C11234", "D11234", "E11234"), Card2 = c("A24321", 
"B24321", "C24321", "D24321", "E24321")), row.names = c(NA, -5L
), class = "data.frame")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...