[問題] 如何內容資料轉置成欄位名稱來計算

作者: frojet (飛稷)   2019-03-18 17:11:46
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
我有一組近5萬筆資料,格式如下
每筆"門診序號"就是一次看診紀錄,"處置代碼"為某個藥品代號
每個病人看診,都會開立1~5種不等藥品。
https://i.imgur.com/UXNj7M6.jpg
原始資料如左圖,但我想轉換資料排版(如右圖)
將藥品代號轉換成每一個欄位,
根據原資料有開立該藥品,則在該欄成 註記成 Yes
方便我後續能統計特定藥品使用頻率
[程式範例]:
不知道如何寫?
[環境敘述]:
windows 10
R version 3.4.4
[關鍵字]:
作者: locka (locka)   2019-03-18 17:55:00
所以所有藥品(1:n)要變成欄位X2到Xn是嗎?門診序號會不會重複?
作者: frojet (飛稷)   2019-03-18 18:11:00
門診序號不會重複如果能把上百個藥品名稱都轉換各別欄位是最棒的。 不過我這裡目前分析需求,其實只要抓出其中六個藥品來對應統計(如我圖上 綠色 和紅色的藥品)是目前要分析的項目
作者: andrew43 (討厭有好心推文後刪文者)   2019-03-18 19:25:00
melt() 和 dcast(),見 https://ideone.com/T623mF
作者: cywhale (cywhale)   2019-03-18 22:29:00
看起來適用melt, dcast來解,這類問題應該提供部分資料較方便解答...,只有img, 裏頭資料又很特殊,很難自動產生題外話前日再用dcast使用自訂fun.aggregat意外踩到一bug後來查到issue https://goo.gl/C1kiax
作者: frojet (飛稷)   2019-03-19 04:23:00
謝謝各位,是說 我要如何提供一小部分資料?各位通常會建議上傳至那個網站,供人下載
作者: tcn1john (momo)   2019-03-19 14:35:00
如果先把處置代號paste起來合併成一欄,再用grep抓藥名不知道如何?
作者: andrew43 (討厭有好心推文後刪文者)   2019-03-19 23:11:00
雲端空間隨便一個都可以,把敏感資料保護或隱敝好就行
作者: tcn1john (momo)   2019-03-20 00:58:00
新手練習一下: https://pastebin.com/Dc7L4WwU
作者: andrew43 (討厭有好心推文後刪文者)   2019-03-20 08:42:00
回樓上,這不太穩健,要確定pattern只會抓到完整名才行
作者: Meng24 (OnFire)   2019-03-20 13:16:00
我想到很土法煉鋼的方式XD新建一個欄位名稱是藥品名的欄位然後用中括號選出你的處置代碼中有藥品的門診號碼 再將這些門診號碼的藥品名欄位填入yes就好了

Links booklink

Contact Us: admin [ a t ] ucptt.com