Как фильтровать данные при назначении длинного списка параметров в Tidyverse? - PullRequest
0 голосов
/ 11 апреля 2019

Я получаю символьный объект, который включает десять имен, которые я хочу отфильтровать, чтобы увидеть все их строки. Как отправить в данный список параметров в функцию filter ().

Я попытался отправить символ в функцию фильтра и вернуть только одну строку.

> head(ls)
[1] "xtyintao"    "蒙特多"      "stonezw"     "jackietz"   
[5] "qiaoxingmao" "champlin"   

nodes %>%
    filter(name==ls)

  name     outdegree totaltimes label1  label2 
  <chr>        <int>      <int> <chr>   <chr>  
1 jackietz         2          2 unknown unknown
Warning message:
In name == ls :
  longer object length is not a multiple of shorter object length

1 Ответ

1 голос
/ 11 апреля 2019

При фильтрации, чтобы увидеть, находится ли элемент name в векторе ls, вам нужно использовать %in% вместо ==. 1 == 1 верно, но 1 %in% c(3, 2, 1) также верно. Но 1 == c(2, 3, 1) возвращает false false true, что неоднозначно. Поэтому попробуйте этот код:

nodes %>%
    filter(name %in% ls)
...