Подмножество столбцов одного фрейма данных (по имени) информацией из второго фрейма данных - PullRequest
0 голосов
/ 30 мая 2018

Буду признателен за решение следующей проблемы: у меня есть следующий пример фрейма данных:

df1 = data_frame(Tom = c(1,2,3,4), Tina = c(5,6,7,8), Todd = c(9,10,11,12), Brit = c(1,2,3,4))

У меня есть второй фрейм данных с информацией о Томе, Тине и т. Д.

 df2 = data_frame(ID = c("Tom","Todd","Tina","Brit"), value = c(1,3,2,1))

Теперь я хотел бы выделить столбцы из фрейма данных df1, если «значение» в df2 удовлетворяет определенному условию, например, df2 $ value = 1 |df2 $ value = 2 Полученная таблица должна выглядеть следующим образом:

desired_result_look_like = data_frame(Tom = c(1,2,3,4), Tina = c(5,6,7,8), Brit = c(1,2,3,4))

Спасибо за помощь.

1 Ответ

0 голосов
/ 30 мая 2018

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

library(dplyr)

df2_filtered <- df2 %>% filter(value == 1 | value == 2)
desired_result <- df1[ , colnames(df1) %in% df2_filtered$ID]

(Это работает при условии, что в опубликованном вами «желаемом результате» вы хотели включить Тину вместо Тодда)

...