2013-08-22 264 views
2

我有以下data.frame:計算頻率

authors <- data.frame(
    surname = I(c("Tukey", "Venables", "Tierney", "Ripley", "McNeil")), 
    nationality = c("US", "Australia", "US", "UK", "Australia"), 
    deceased = c("yes", rep("no", 3),"noinfo")) 

其產生這樣的輸出:

 surname nationality deceased 
1 Tukey   US  yes 
2 Venables Australia  no 
3 Tierney   US  no 
4 Ripley   UK  no 
5 McNeil Australia noinfo 

我想要做的是讓頻率deceased來自nationality。 屈服這樣的輸出:

US yes 1 
US no 1 
US noinfo 0 
Australia yes 0 
Australia no 1 
Australia noinfo 1 
UK yes 0 
UK no 1 
UK noinfo 0 

此刻,我只能通過tables顯示的統計信息。

stat <- table(authors) 

我不知道如何繼續訪問表中的元素。 建議將不勝感激。

回答

3

你需要table你想要的發生的事情...

table(authors[ c("nationality" , "deceased") ]) 
#   deceased 
#nationality no noinfo yes 
# Australia 1  1 0 
# UK   1  0 0 
# US   1  0 1 

而要得到你想要的確切輸出 ...把​​它變成一個data.frame ....

data.frame(table(authors[ c("nationality" , "deceased") ])) 
# nationality deceased Freq 
#1 Australia  no 1 
#2   UK  no 1 
#3   US  no 1 
#4 Australia noinfo 1 
#5   UK noinfo 0 
#6   US noinfo 0 
#7 Australia  yes 0 
#8   UK  yes 0 
#9   US  yes 1