[問題] 如何link特定個別條件而撈出整筆資料

作者: frojet (飛稷)   2019-03-12 17:35:27
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
新手(沒寫過程式,R 是我的第一次)
[問題敘述]:
我有一組近12萬筆資料(A資料),資料格式長的如下圖
https://i.imgur.com/hE29QN1.png
每個病歷號都會重複,每個病人住院,醫師會給予不同醫療處置(處置代碼)
醫師給n個醫療處置,就會重複n筆有相同病歷號、住院序號等數據
另外有一個住院序號之資料表(B資料)約500多筆,格式如下
https://i.imgur.com/QqdXNzE.png
我如何寫R程式,把B資料中有的住院序號,從A資料中海底撈月通通拉出來
切成另外一組小檔案存檔,進行後續分析?
作者: locka (locka)   2019-03-14 23:16:00
抱歉4樓的大大,我講錯了 >"<merge(a,b,by=id,all=F)的確也可以取出交集的資料(事實上all參數本來預設就是F)
作者: obarisk (OSWALT)   2019-03-14 23:13:00
inner join就不用filter了
作者: frojet (飛稷)   2019-03-14 23:00:00
樓上 沒錯呢 感謝樓上教會我寫這串code
作者: locka (locka)   2019-03-14 22:57:00
inner_join 概念上就是取交集啊…所以跟%in%一樣,不過要怎麼把inner_join()寫在dplyr的 filter 裡面這我就不會了XD個人是覺得 filter(a, 住院序號 %in% b$住院序號)這樣的寫法滿清楚易讀的啦…
作者: celestialgod (天)   2019-03-14 22:43:00
基本上可以....
作者: frojet (飛稷)   2019-03-14 22:39:00
所以樓上 是指%in% 換成 inner join 也可以跑出來嗎?
作者: obarisk (OSWALT)   2019-03-14 19:03:00
inner join和in的效果一樣
作者: asdfrtg (asdfrtg)   2019-03-14 15:49:00
想借問用merge(b,by=id,all=F) 這樣可不可以打錯merge(a,b,by=id,all=F) 這樣可不可以
作者: locka (locka)   2019-03-14 17:01:00
樓上你這樣是把ab兩個dataframe合併 不是撈特定資料喔
作者: andrew43 (討厭有好心推文後刪文者)   2019-03-12 17:53:00
如果用 data.table 見 https://ideone.com/7GcI92
作者: locka (locka)   2019-03-12 18:41:00
result <- filter(A, 住院序號 %in% B$住院序號)
作者: frojet (飛稷)   2019-03-13 13:33:00
謝謝
作者: frojet (飛稷)   2019-03-15 16:30:00
樓上的方法試過,真的也可以。

Links booklink

Contact Us: admin [ a t ] ucptt.com