免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4252 | 回复: 16
打印 上一主题 下一主题

[文本处理] 数据结构的处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-03 10:27 |只看该作者 |倒序浏览
本帖最后由 gooderpan 于 2014-07-03 10:50 编辑

我有一个文件file: (tab分隔)
a    MM   7
b    SS    2
b    MM   5
c    SS    1
c    MM   4
d    SS    1
d    MM   3
e    SS    1
e    MM   4
f     MM   3
g    MM   4

处理后的数据类型为:(tab分隔)
         a     b    c     d     e     f    g
SS     0     2    1     1     1    0    0   
MM    7     5    4     3     4    3    4

请大神们指点迷津!!谢谢啦!!

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-07-03 10:58 |只看该作者
回复 1# gooderpan
难度在打印格式控制,我会乱说?
  1. awk '{if(!($1 in a)){a[$1];s=s"\t"$1};b[$2];c[$2,$1]=$3} END{print s;for(i in b){printf i;for(j in a){if((i,j) in c)printf "\t"c[i,j];else printf "\t"0}print ""}}' i
  2.         a        b        c        d        e        f        g
  3. SS        0        2        1        1        1        0        0
  4. MM        7        5        4        3        4        3        4
复制代码

论坛徽章:
0
3 [报告]
发表于 2014-07-03 11:01 |只看该作者
大神,太感谢你了!!!!!!!!!回复 2# Herowinter

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
4 [报告]
发表于 2014-07-03 11:03 |只看该作者
回复 3# gooderpan
因为是hash,有时顺序不一定能保证,但我看现在的顺序和你
期望的是一致的。

   

论坛徽章:
0
5 [报告]
发表于 2014-07-03 11:08 |只看该作者
和MM对应的一般是GG吧,为啥是SS?难道楼主喜欢SM?

论坛徽章:
7
天秤座
日期:2014-08-07 13:56:30丑牛
日期:2014-08-27 20:34:21双鱼座
日期:2014-08-27 22:02:21天秤座
日期:2014-08-30 10:39:11双鱼座
日期:2014-09-21 20:07:532015年亚洲杯之日本
日期:2015-02-06 14:00:282015亚冠之大阪钢巴
日期:2015-11-02 14:50:19
6 [报告]
发表于 2014-07-03 11:37 |只看该作者
回复 5# 用户名注册后不能更改
这年头不流行按性别分类了,流行按攻受分类了{:2_168:}

   

论坛徽章:
0
7 [报告]
发表于 2014-07-03 14:16 |只看该作者
大神,我源文件是以下结构,那么顺序就会出错了!!!
TP53    Missense_Mutation   7
CSMD3   Silent  2
CSMD3   Missense_Mutation   5
DNAH7   Silent  1
DNAH7   Missense_Mutation   4
CTNNB1  Silent  1
CTNNB1  Missense_Mutation   3
TTN Silent  1
TTN Missense_Mutation   4
TLN2    Missense_Mutation   3
LILRA6  Missense_Mutation   4

您能帮我看看吗?谢谢了!回复 4# Herowinter


   

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
8 [报告]
发表于 2014-07-03 14:21 |只看该作者
回复 7# gooderpan
你希望是什么顺序呢?源文件的出现顺序,
字典序?你的期望结果是怎么样的?

   

论坛徽章:
0
9 [报告]
发表于 2014-07-03 14:27 |只看该作者
我源文件:
TP53    Missense_Mutation   7
CSMD3   Silent  2
CSMD3   Missense_Mutation   5
DNAH7   Silent  1
DNAH7   Missense_Mutation   4
CTNNB1  Silent  1
CTNNB1  Missense_Mutation   3
TTN Silent  1
TTN Missense_Mutation   4
TLN2    Missense_Mutation   3
LILRA6  Missense_Mutation   4

用您刚刚的那个code以后:
                  TP53 CSMD3 DNAH7 CTNNB1 TTN TLN2 LILRA6
Silent               1     2     0      1   1    0      0
Missense_Mutation    4     5     7      4   3    4      3

对不上号了,对应出现了错误。回复 8# Herowinter


   

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
10 [报告]
发表于 2014-07-03 14:52 |只看该作者
本帖最后由 Herowinter 于 2014-07-03 14:57 编辑

回复 9# gooderpan
  1. awk '{if(!($1 in a)){a[$1];s=s"\t"$1;d[++n]=$1};b[$2];c[$2,$1]=$3} END{print s;for(i in b){printf("%s",i);for(j=1;j<=n;j++){if((i,d[j]) in c)printf "\t"c[i,d[j]];else printf "\t"0}print ""}}' i
  2.         TP53        CSMD3        DNAH7        CTNNB1        TTN        TLN2        LILRA6
  3. Silent        0        2        1        1        1        0        0
  4. Missense_Mutation        7        5        4        3        4        3        4
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP