看板 R_Language 關於我們 聯絡資訊
[軟體熟悉度]:新手+入門 [問題敘述]: 手上有一筆某蛙類的解剖資料,想要分析食性。 紀錄的時候會長這樣: 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