2011-10-19 164 views
3

我有一個關於從大數據幀,即時通訊與工作數據挖掘另外一個問題,前幾行如下:彙總數據的

 Assay Genotype Sample Result 
1  001  G   1   0 
2  001  A   2   1 
3  001  G   3   0 
4  001  NA  4   NA 
5  002  T   1   0 
6  002  G   2   1 
7  002  T   3   0 
8  002  T   4   0 
9  003  NA  1   NA 
10 003  G   2   1 
11 003  G   3   1 
12 003  T   4   0 

我總共將要使用每個樣品2000個樣品和168個測定。

我想從這些數據中生成一個彙總表,告訴我每個「結果」有多少個「樣本」。 「結果」1,0或NA只有3個選項。我想的結果爲具有看起來像這樣的數據幀(用上述的數據):

Assay 1 0 NA 
001  1 2 1 
002  1 3 0 
003  2 1 1 

正如我上面提到有168點不同的測定法,並且它們不是簡單地標記在數字系列,所以分析ID必須從原始數據框中提取。 在理想的世界中,我還希望看到數字旁邊列出的每個「結果」的樣本百分比(或在不同的表格中)。

回答

2

嘗試

table(df$Assay, df$Result,useNA="ifany") 
+0

這是接近,但只是告訴我的1和0,但數量不限數量的NA。 –

+0

@SamGlobus:查看我更新的答案。 – MYaseen208

+0

非常快速的更新(+1)。無論如何,我不會刪除我非常相似的答案,因爲我認爲保持標題更優雅:) – daroczig

3

像@ MYaseen208但加入NA列:

> table(df[, c('Assay', 'Result')], useNA='ifany') 
    Result 
Assay 0 1 <NA> 
    1 2 1 1 
    2 3 1 0 
    3 0 0 1 

參見:?table