2015-04-02 57 views
1

我有大約18個數據幀,它們基本上是存儲在列Rptnames中的元素的頻率計數。他們都有一些不同,有的在Rptnames列相同的元素,使他們看起來像這家名爲GroupedTableProportiondelAll當只有一些列匹配時如何刪除

Rptname freq 

bob   4324234 
jane  433 
ham  4324 
tim   22 

dataframe called GroupedTableProportiondelLUAD 

Rptname  freq 

bob   987 
jane   223 
jonny  12 
jim   98092 

我試圖建立一個表,以便Rptname成爲列

數據框和各行是頻率。這樣我就可以組合所有的數據幀。

我曾嘗試以下

GroupedTableProportiondelAll_T <- as.data.frame(t(GroupedTableProportiondelAll)) 
    GroupedTableProportiondelLUAD_T <- as.data.frame(t(GroupedTableProportiondelLUAD)) 

    total <- rbind(GroupedTableProportiondelLUAD_T, GroupedTableProportiondelAll_T) 

,但我得到的錯誤 錯誤rbind(deparse.level,...): 數的參數列不匹配

所以問題是 a)我該怎麼做rbind(cbind也會在沒有轉置的情況下執行我想的),以便綁定可以在不需要匹配的情況下發生。
b)將合併在這裏更好 c)是否有一種方法可以爲空值輸入零 d)P'raps有更好的方法來做到這一點,像矩陣我不熟悉?我知道它的4個問題,但中心問題是相同的 - 當不是所有的行或列匹配時如何綁定

+0

您應該將數據保留爲長格式。這意味着你應該爲每個data.frame添加一個data.frame的ID和'rbind'它們。如果你堅持使用寬格式,那麼以後你可以在reshape2包中使用'dcast',儘管這通常會使數據更難處理。 – Roland 2015-04-02 07:28:26

+0

換句話說,我應該合併?那會用零填充空值嗎? – 2015-04-02 07:31:58

+0

我在哪裏提到'合併'?我想你可以使用它... – Roland 2015-04-02 07:32:28

回答

1

您可以在添加列以標識data.frame之後首先添加rbind數據幀。然後使用reshape2包中的dcast函數。

rpt1 
## Rptname freq df 
## 1  bob 4324234 rpt1 
## 2 jane  433 rpt1 
## 3  ham 4324 rpt1 
## 4  tim  22 rpt1 

rpt2 
## Rptname freq df 
## 1  bob 987 rpt2 
## 2 jane 223 rpt2 
## 3 jonny 12 rpt2 
## 4  jim 98092 rpt2 


rpt1$df <- "rpt1" 
rpt2$df <- "rpt2" 
rpt <- rbind(rpt1, rpt2) 
dcast(data = rpt, df ~ Rptname, value.var = "freq") 
##  df  bob ham jane tim jim jonny 
## 1 rpt1 4324234 4324 433 22 NA NA 
## 2 rpt2  987 NA 223 NA 98092 12 
+2

因爲他們有很多data.frames,他們應該把它們放在一個列表中,並做類似'DFlist < - Map(cbind,DFlist,g = seq_along(DFlist)); DF < - do.call(rbind,DFlist)'。 – Roland 2015-04-02 07:41:37

相關問題