如果只是给的数据,可以试下这个:
sed 's/\(.*\)/\1 \1/' l1 >tmp && join -a 1 tmp l2 |sed 's/\(g[0-9]\)
g[0-9]$/\1 NA NA NA NA/'
l1, l2是两个文件,不过觉得这个不一定比Perl快,Perl is written by Larry Wall :)
2010/5/9 camelbbs <camelbbs@gmail.com>:
> join怎么用呢,谢谢啊
>
> On May 8, 12:08 pm, Jie Zhou <jiez...@uchicago.edu> wrote:
>> 用 join 快多了。
>>
>> 为什么一定要用perl?
>>
>> best,
>> Jie Zhou
>> Department of Human Genetics,
>> Institute of Genomics and Systems Biology,
>> University of Chicago
>> 920 East 58th Street, CLSC 431
>> Chicago, IL 60637
>>
>> 2010/5/7 camelbbs <camel...@gmail.com>
>>
>>
>>
>>
>>
>> > $a{g1} = [na,na,na]
>> > 是引用吗,谢谢
>>
>> > On May 7, 7:00 pm, wd <w...@wdicc.com> wrote:
>> > > 用 hash,key 就是那些个 g1,g2 的,先根据第一个表生成一个 类似 $a{g1} = [na,na,na]
>> > > 的,然后再把第二个表里面有的补进来。
>>
>> > > 在 2010年5月8日 上午7:05,camelbbs <camel...@gmail.com>写道:
>>
>> > > > 这个程序跟生物没关系,我只是引用了一些名词而已。就是有两个表,把一个表的内容放到另一个表中去,按名称来放,没有的就空着,怎么放比较好?
>>
>> > > > On May 7, 5:21 pm, Jeova Sanctus Unus <jeova.sanctus.u...@gmail.com>
>> > > > wrote:
>> > > > > 不懂生物。我想可以先放到数组里,再先补NA,排序就好了吧?什么叫按列表排列?是按每一列吗?
>>
>> > > > > 在 10-5-7,camelbbs<camel...@gmail.com> 写道:
>>
>> > > > > > 有一列基因列表:
>> > > > > > g1
>> > > > > > g2
>> > > > > > g3
>> > > > > > g4
>> > > > > > g5
>> > > > > > g6
>>
>> > > > > > 另外有一组基因数据:
>> > > > > > g1 a b c
>> > > > > > g3 a d f
>> > > > > > g4 d f e
>> > > > > > g6 w q h
>>
>> > > > > > 我想把这组基因数据按列表排列,没有的行用NA代替。结果成这样:
>>
>> > > > > > g1 g1 a b c
>> > > > > > g2 NA NA NA NA
>> > > > > > g3 g3 a d f
>> > > > > > g4 g4 d f e
>> > > > > > g5 NA NA NA NA
>> > > > > > g6 g6 w q h
>>
>> > > > > > 请问perl有什么比较快的办法可以实现。
>>
>> > 我先把列表放到一个hash,然后foreach这个hash,这样虽然可以实现,但是效率很低,如果我有几百万行的话,时间很长。请问这样的问题有更
>> > > > > > 简单点的办法吗?
>>
>> > > > > > --
>> > > > > > 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
>> > > > > > 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
>> > > > > > 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com<perlchina%2Bunsubscribe@googlegroups-.com>
>> > <perlchina%2Bunsubscr...@googlegroups-.com>
>> > > > 。
>> > > > > > 若有更多问题,请通过http://groups.google.com/group/perlchina?hl=zh-CN
>> > 访问此网上论坛。
>>
>> > > > > --
>> > > > > 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
>> > > > > 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
>> > > > > 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com<perlchina%2Bunsubscribe@googlegroups-.com>
>> > <perlchina%2Bunsubscr...@googlegroups-.com>
>> > > > 。
>> > > > > 若有更多问题,请通过http://groups.google.com/group/perlchina?hl=zh-CN访问此网上论坛。-
>> > > > Hide quoted text -
>>
>> > > > > - Show quoted text -
>>
>> > > > --
>> > > > 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
>> > > > 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
>> > > > 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com<perlchina%2Bunsubscribe@googlegroups-.com>
>> > <perlchina%2Bunsubscr...@googlegroups-.com>
>> > > > 。
>> > > > 若有更多问题,请通过http://groups.google.com/group/perlchina?hl=zh-CN访问此网上论坛。
>>
>> > > --
>> > > 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
>> > > 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
>> > > 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com<perlchina%2Bunsubscribe@googlegroups-.com>
>> > 。
>> > > 若有更多问题,请通过http://groups.google.com/group/perlchina?hl=zh-CN访问此网上论坛。-
>> > Hide quoted text -
>>
>> > > - Show quoted text -
>>
>> > --
>> > 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
>> > 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
>> > 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com<perlchina%2Bunsubscribe@googlegroups-.com>
>> > 。
>> > 若有更多问题,请通过http://groups.google.com/group/perlchina?hl=zh-CN访问此网上论坛。
>>
>> --
>> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
>> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
>> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
>> 若有更多问题,请通过http://groups.google.com/group/perlchina?hl=zh-CN访问此网上论坛。- Hide quoted text -
>>
>> - Show quoted text -
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>
>
--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
没有评论:
发表评论