Получить подмножество df на основе условия, примененного к элементу списка - PullRequest
1 голос
/ 06 августа 2020

Я хотел бы l oop по группе элементов и использовать это, чтобы проверить условие для подмножества фрейма данных. Мой код сейчас выдает ошибку. Я хочу проверить, проходит ли каждый элемент в en_nam1 en1 $ attributes == item. Если он проходит условие, я хочу выбрать строку и добавить другой фрейм данных для возврата. Спасибо.

A tibble: 3 x 2
  attributes models   
  <chr>      <list>   
1 AT01S      <chr [2]>
2 AT02S      <chr [2]>
3 AGG101     <chr [1]>
4 AGG102     <chr [1]>
5 AGG103     <chr [1]>
6 AGG104     <chr [1]>

en_nam1
[1] "AT01S"  "AT02S"  "AGG101"

My code:
 en_nam1 %>%
+ map(~subset(en1, en1$attributes == .x))

Expected result:
 A tibble: 3 x 2
  attributes models   
  <chr>      <list>   
1 AT01S      <chr [2]>
2 AT02S      <chr [2]>
3 AGG101     <chr [1]>

1 Ответ

1 голос
/ 06 августа 2020

Нам здесь не нужен al oop. Это более прямой способ с %in%

library(dplyr)
en1 %>%
  filter(attributes %in% en_nam1)

или subset в base R

subset(en1, attributes %in% en_nam1)
...