2014-12-14 13 views
9

có cách giải quyết để sử dụng một cái gì đó nhưgrepl cho bảng dplyr sql?

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

cho bảng SQL dplyr? Trong SQL nó là probalby một LIKE. Của cource tôi có thể chuyển đổi bảng SQL thành một bảng dữ liệu R, nhưng nó là rất lớn. (http://cran.r-project.org/web/packages/dplyr/vignettes/databases.html) Tại thời điểm này tôi nhận được

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

thx Christof

+0

Sử dụng SQL 'IN'. http://www.sql-tutorial.net/SQL-IN.asp –

+10

'bộ lọc (df, vị trí% trong% c (" a "," b "," c ")' hoặc sử dụng 'semi_join() ' – hadley

+1

@hadley thx cho các thư viện tuyệt vời của bạn. Có cách nào để lấy mẫu phù hợp (SQL LIKE thay vì IN) không?'% Trong% 'và' semi_join() 'làm khớp chính xác, nếu tôi hiểu chính xác – ckluss

Trả lời

0

Sử dụng sql để dịch các biểu hiện trực tiếp vào sql là một lựa chọn.

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

Mà sẽ tiêm sau đây vào câu lệnh WHERE của truy vấn của bạn:

<SQL> location LIKE 'A%' OR location LIKE 'B%' OR location LIKE 'C%' 
Các vấn đề liên quan