2013-05-03 64 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