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

看板R_Language作者 (Lucy Lee)時間5年前 (2019/03/18 17:11), 5年前編輯推噓2(2021)
留言23則, 6人參與, 5年前最新討論串1/1
[問題類型]: 程式諮詢(我想用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

03/18 17:55, 5年前 , 1F
所以所有藥品(1:n)要變成欄位X2到Xn是嗎?
03/18 17:55, 1F

03/18 17:55, 5年前 , 2F
門診序號會不會重複?
03/18 17:55, 2F

03/18 18:11, 5年前 , 3F
門診序號不會重複
03/18 18:11, 3F

03/18 18:18, 5年前 , 4F
如果能把上百個藥品名稱都轉換各別欄位是最棒的。 不過
03/18 18:18, 4F

03/18 18:18, 5年前 , 5F
我這裡目前分析需求,其實只要抓出其中六個藥品來對應統
03/18 18:18, 5F

03/18 18:18, 5年前 , 6F
計(如我圖上 綠色 和紅色的藥品)是目前要分析的項目
03/18 18:18, 6F

03/18 19:25, 5年前 , 7F
melt() 和 dcast(),見 https://ideone.com/T623mF
03/18 19:25, 7F

03/18 22:29, 5年前 , 8F
看起來適用melt, dcast來解,這類問題應該提供部分資料較
03/18 22:29, 8F

03/18 22:31, 5年前 , 9F
方便解答...,只有img, 裏頭資料又很特殊,很難自動產生
03/18 22:31, 9F

03/18 22:32, 5年前 , 10F
題外話前日再用dcast使用自訂fun.aggregat意外踩到一bug
03/18 22:32, 10F

03/18 22:33, 5年前 , 11F
後來查到issue https://goo.gl/C1kiax
03/18 22:33, 11F

03/19 04:23, 5年前 , 12F
謝謝各位,是說 我要如何提供一小部分資料?
03/19 04:23, 12F

03/19 04:23, 5年前 , 13F
各位通常會建議上傳至那個網站,供人
03/19 04:23, 13F

03/19 04:23, 5年前 , 14F
下載
03/19 04:23, 14F

03/19 14:35, 5年前 , 15F
如果先把處置代號paste起來合併成一欄,再用grep抓藥名
03/19 14:35, 15F

03/19 14:35, 5年前 , 16F
不知道如何?
03/19 14:35, 16F

03/19 23:11, 5年前 , 17F
雲端空間隨便一個都可以,把敏感資料保護或隱敝好就行
03/19 23:11, 17F

03/20 00:58, 5年前 , 18F
新手練習一下: https://pastebin.com/Dc7L4WwU
03/20 00:58, 18F

03/20 08:42, 5年前 , 19F
回樓上,這不太穩健,要確定pattern只會抓到完整名才行
03/20 08:42, 19F

03/20 13:16, 5年前 , 20F
我想到很土法煉鋼的方式XD
03/20 13:16, 20F

03/20 13:16, 5年前 , 21F
新建一個欄位名稱是藥品名的欄位
03/20 13:16, 21F

03/20 13:16, 5年前 , 22F
然後用中括號選出你的處置代碼中有藥品的門診號碼 再將這
03/20 13:16, 22F

03/20 13:16, 5年前 , 23F
些門診號碼的藥品名欄位填入yes就好了
03/20 13:16, 23F
文章代碼(AID): #1SZs3N6D (R_Language)