[問題] 如何整理數量位置資料如:1胃,2腸

看板R_Language作者 (@_2;)時間9年前 (2015/07/10 14:14), 9年前編輯推噓1(1012)
留言13則, 4人參與, 最新討論串1/3 (看更多)
[軟體熟悉度]:新手+入門 [問題敘述]: 手上有一筆某蛙類的解剖資料,想要分析食性。 紀錄的時候會長這樣: 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

07/10 15:02, , 1F
tidyr::separate
07/10 15:02, 1F

07/10 15:04, , 2F
你如果把資料補齊,可以教你寫...
07/10 15:04, 2F

07/10 15:04, , 3F
更正,我發現沒那麼簡單= =,我寫一下,等等PO給你
07/10 15:04, 3F

07/10 15:21, , 4F
這裡separate不能用,因為他一定要有分隔符號
07/10 15:21, 4F

07/10 15:22, , 5F
目前沒有找到可以直接分開相連的字串qq
07/10 15:22, 5F

07/10 15:59, , 6F
先把原資料的 "," 取代成 "\tab" 再把資料貼進excel
07/10 15:59, 6F

07/10 16:00, , 7F
欄位就自動隔開了 接著在新欄位用if 整理前方資料
07/10 16:00, 7F

07/10 16:01, , 8F
大致就像樣了 我也不會用tidyr::gather()
07/10 16:01, 8F

07/10 16:29, , 9F
EXCEL可用if,isnumber,numbervalue,if
07/10 16:29, 9F

07/10 16:29, , 10F
先判斷左2是否是數字,不對就在檢驗左1 回傳數字
07/10 16:29, 10F

07/10 17:47, , 11F
先簡單寫個for迴圈搭配strsplit簡單做呢
07/10 17:47, 11F

07/10 20:06, , 12F
那個範例資料是我轉成CSV各式貼上來的
07/10 20:06, 12F

07/10 20:12, , 13F
請問有字串處理的教學資源嗎
07/10 20:12, 13F
文章代碼(AID): #1LdsBJ4N (R_Language)
文章代碼(AID): #1LdsBJ4N (R_Language)