2014-12-14 4 views
9

есть обходной путь, чтобы использовать что-то вродеgrepl для таблицы dplyr sql?

filter(df, grepl("A|B|C",location)) 

для таблицы dplyr SQL? В SQL это связано с LIKE. В курсе я мог преобразовать таблицу SQL в таблицу данных R, но она очень большая. (http://cran.r-project.org/web/packages/dplyr/vignettes/databases.html) На данный момент я получаю

Error in sqliteSendQuery(conn, statement) : 
    error in statement: no such function: GREPL 

ТНХ Кристофа

+0

Использование SQL 'в'. http://www.sql-tutorial.net/SQL-IN.asp –

+10

'filter (df, location% in% c (" a "," b "," c ")' или использовать 'semi_join() ' – hadley

+1

@hadley thx для ваших блестящих библиотек. Есть ли способ получить также соответствие шаблонов (SQL LIKE вместо IN)?'% In% 'и' semi_join() 'делать точное сопоставление, если я правильно понял это – ckluss

ответ

0

Использование sql перевести выражение непосредственно в SQL является одним из вариантов.

sql_table %>% filter(sql("location LIKE 'A%' 
          OR location LIKE 'B%' 
          OR location LIKE 'C%'") 

Какой будет вводить следующее в WHERE заявление вашего запроса:

<SQL> location LIKE 'A%' OR location LIKE 'B%' OR location LIKE 'C%' 

 Смежные вопросы

  • Нет связанных вопросов^_^