[問題] 資料篩選相關問題 多對多
舉例來說
x=c(123,456,897,243,651,852,964,357,555)
y=c(651,852,111)
我想要從 x 中 篩選出 y 中有的變數 651 852 111
111沒有出現在 x 中 所以不用顯示出來
基本上我想要的就是位置 5,6 ( 651=x[5] 852=x[6] )
目前我的想法是
#先用布林值去判斷哪個為true
#再去找位置
bo = as.integer( x == y[1] )
bo_matr = matrix(bo)
map =
which(apply(bo_matr, 1L,function(row) all(row == 1)))
這樣就很清楚知道是 x 中的 5,6 是我要的 (因為 true=1 )
但是這樣很花時間
因為我 x y 各有上百萬筆row
每次都百萬筆去做布林比對
非常沒效率
所以想問問看有沒有類似函數可以幫我做篩選
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.53.171
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1471345900.A.1A8.html
→
08/16 19:27, , 1F
08/16 19:27, 1F
→
08/16 19:28, , 2F
08/16 19:28, 2F
感謝版主T.T 成功了
看起來是一次比對全部 執行速度也很快
另外類似這種 %in% 的用法 有文章介紹嗎?
http://chingchuan-chen.github.io/r/2015/07/01/magrittr
我有看過這篇 裡面有講一些
a_list %>% unlist %>% unique %>% sort
這些寫得蠻詳細的 正在學習中
這種方法對我來說 算是比較高階的語法了
目前我資料整理 都還是用矩陣的方式
篩選 合併 cbind 這類的code
謝謝
→
08/16 19:40, , 3F
08/16 19:40, 3F
※ 編輯: f496328mm (114.36.53.171), 08/16/2016 19:47:32
→
08/16 19:48, , 4F
08/16 19:48, 4F
>///<
話說R版的版主都好熱心 回應速度都超快
學到了很多 感謝><
※ 編輯: f496328mm (114.36.53.171), 08/16/2016 19:52:22
※ 編輯: f496328mm (114.36.53.171), 08/16/2016 19:53:24
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章