作者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://webptt.com/cn.aspx?n=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
1F:→ celestialgod: tidyr::separate 07/10 15:02
2F:→ celestialgod: 你如果把资料补齐,可以教你写... 07/10 15:04
3F:→ celestialgod: 更正,我发现没那麽简单= =,我写一下,等等PO给你 07/10 15:04
4F:→ celestialgod: 这里separate不能用,因为他一定要有分隔符号 07/10 15:21
5F:→ celestialgod: 目前没有找到可以直接分开相连的字串qq 07/10 15:22
6F:→ hwjuranus: 先把原资料的 "," 取代成 "\tab" 再把资料贴进excel 07/10 15:59
7F:→ hwjuranus: 栏位就自动隔开了 接着在新栏位用if 整理前方资料 07/10 16:00
8F:→ hwjuranus: 大致就像样了 我也不会用tidyr::gather() 07/10 16:01
9F:→ celestialgod: EXCEL可用if,isnumber,numbervalue,if 07/10 16:29
10F:→ celestialgod: 先判断左2是否是数字,不对就在检验左1 回传数字 07/10 16:29
11F:推 Wush978: 先简单写个for回圈搭配strsplit简单做呢 07/10 17:47
12F:→ helixc: 那个范例资料是我转成CSV各式贴上来的 07/10 20:06
13F:→ helixc: 请问有字串处理的教学资源吗 07/10 20:12