2013-05-03 66 views
1

我有一个关于从另一个数据框中生成数据帧的问题。新的数据帧包含与旧数据帧相同的信息,但以其他方式报告数据。数据帧开始,如下所示:R:以其他方式从数据帧报告数据

> a 
Gene.Symbol  miRNA 
    Nap1l1  mmu-let-7a 
    Napepld  mmu-let-7b 
    Nat8l  mmu-let-7b 
    Nceh1  mmu-let-7b 
    Ncoa3  mmu-let-7a 
    Ndst2  mmu-let-7a 
    Ndst3  mmu-let-7a 
    Nedd4l  mmu-let-7a 
    Nedd4l  mmu-let-7b 
    Nefm   mmu-let-7a 

现在我想将数据帧转换为像下面这样的数据帧。

>b    mmu-let-7a mmu-let-7b 
    Nap1l1  1    0 
    Napepld  0    1 
    Nat8l  0    1 
    Nceh1  0    1 
    Ncoa3  1    0 
    Ndst2  1    0 
    Ndst3  1    0 
    Nedd4l  1    1 
    Nefm   1    0 

任何人都可以帮助我吗? 非常感谢! 问候Lisanne

+1

看http://stackoverflow.com/questions/8093839/reshape-data-for-values-in-one-column。和'reshape'或'reshape2'包。 – Thomas 2013-05-03 07:55:39

回答

2

使用reshape2

require(reshape2) 
df$z <- 1 
dcast(df, Gene.Symbol ~ miRNA, value.var="z", fill=0) 
# Gene.Symbol mmu-let-7a mmu-let-7b 
# 1  Nap1l1   1   0 
# 2  Napepld   0   1 
# 3  Nat8l   0   1 
# 4  Nceh1   0   1 
# 5  Ncoa3   1   0 
# 6  Ndst2   1   0 
# 7  Ndst3   1   0 
# 8  Nedd4l   1   1 
# 9  Nefm   1   0