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