2016-05-20 32 views
6

Có cách nào bỏ qua trường hợp nhạy cảm khi thực hiện kết nối bằng dplyr không? bên trái, bên trong và đầy đủ?Bỏ qua trường hợp nhạy cảm trong dplyr tham gia

Tôi thấy nó hoạt động với lựa chọn nhưng điều này thường là một nỗi đau lớn đối với tôi. Tôi biết tôi có thể chuyển đổi các cột toupper hoặc chịu đựng trước khi bàn tay, nhưng điều này sẽ là một công việc hữu ích xung quanh.

+0

Chúng tôi có thể xin ví dụ. Đây có phải là ý của bạn không? https://gist.github.com/jimhester/a060323a05b40c6ada34 – Alex

+0

Có thể kiểm tra gói fuzzyjoin? Nó là một biến thể trên các kết nối dplyr và một số hàm có vẻ liên quan đến điều này. – aosmith

Trả lời

0

Tôi không nghĩ rằng có một cách đơn giản để đi xung quanh bằng cách sử dụng tolower hoặc toupper để gọn gàng dữ liệu trước tiên. Điều đó nói rằng, một đột biến nội tuyến (bên trong tham gia) sẽ để lại các dữ liệu ban đầu bị ảnh hưởng nếu đó là ưa thích.

X %>% left_join(Y %>% mutate(id = tolower(id)), by = "id")` 

Nó hoạt động, nhưng chúng tôi cũng có thể đã tạo Y gọn gàng có id để khớp với X ngay từ đầu (theo ý kiến ​​của tôi).

+0

thay vì lộn xộn với việc biến đổi các cột riêng lẻ, tôi có thể làm điều gì đó như '...%>% setNames (., Tolower (tên (.)))%>% ...' để nhận tất cả chúng – Gregor

Các vấn đề liên quan