作者helixc (@_2;)
看板R_Language
標題[問題] 如何整理數量位置資料如:1胃,2腸
時間Fri Jul 10 14:14:40 2015
[軟體熟悉度]:新手+入門
[問題敘述]:
手上有一筆某蛙類的解剖資料,想要分析食性。
紀錄的時候會長這樣:
ID,Food A,Food B,Food C,Food E
C146,,,,3腸
B287,,,,10腸
C140,,,,4腸
C133,,,1腸,
C132,1腸,,,
B305,,,1腸,
C112,,2腸,,1腸
C120,,,,1腸
C128,,,,1腸
想要整理成這樣的資料:
ID, Food type, Amount, Location
C146, E, 3, 腸
B287, E, 10, 腸
C140, E, 4, 腸
C133, C, 1, 腸
目前我知道怎麼用tidyr::gather()整理資料,
但目前想不到要怎麼把混在一起的數字和文字分開。
因為數量不一定都是一位數的數字,位置也會有兩個字的狀況,
純粹把資料當成文字硬去抽取特定位置沒辦法解決這個問題。
資料量不大,其實可以用Excel做,
但我在Excel就是用left()和right()抽取最常見的位數,
再用工人智慧去檢核。理論上在R應該有更人工智慧(?)的方法?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.130.96.14
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1436508883.A.117.html
※ 編輯: helixc (140.130.96.14), 07/10/2015 14:17:19
※ 編輯: helixc (140.130.96.14), 07/10/2015 14:22:30
※ 編輯: helixc (140.130.96.14), 07/10/2015 14:24:46
→ celestialgod: tidyr::separate 07/10 15:02
→ celestialgod: 你如果把資料補齊,可以教你寫... 07/10 15:04
→ celestialgod: 更正,我發現沒那麼簡單= =,我寫一下,等等PO給你 07/10 15:04
→ celestialgod: 這裡separate不能用,因為他一定要有分隔符號 07/10 15:21
→ celestialgod: 目前沒有找到可以直接分開相連的字串qq 07/10 15:22
→ hwjuranus: 先把原資料的 "," 取代成 "\tab" 再把資料貼進excel 07/10 15:59
→ hwjuranus: 欄位就自動隔開了 接著在新欄位用if 整理前方資料 07/10 16:00
→ hwjuranus: 大致就像樣了 我也不會用tidyr::gather() 07/10 16:01
→ celestialgod: EXCEL可用if,isnumber,numbervalue,if 07/10 16:29
→ celestialgod: 先判斷左2是否是數字,不對就在檢驗左1 回傳數字 07/10 16:29
推 Wush978: 先簡單寫個for迴圈搭配strsplit簡單做呢 07/10 17:47
→ helixc: 那個範例資料是我轉成CSV各式貼上來的 07/10 20:06
→ helixc: 請問有字串處理的教學資源嗎 07/10 20:12