2016-07-29 149 views
0

我有一個數據框,我從文件中讀取:sassign。我使用prop.table()創建了一個頻率表。下面是我用什麼:更改prop.table的輸出

prop.table(table(sassign$state)) 

輸出是:

AE  CT  DC  DE  MA  MD  ME  NH  NJ  NY  PA  RI  VA  VI  VT 
0.00010 0.05024 0.00678 0.01422 0.08504 0.08344 0.00686 0.01330 0.22136 0.33060 0.17436 0.00804 0.00054 0.00090 0.00422 

此輸出非常笨重。有沒有什麼辦法我可以把它組織成一個列,包括出現次數然後排序?

我也嘗試過CrossTabs,但它更加笨拙。

CrossTable(sassign$state) 

    Cell Contents 
|-------------------------| 
|      N | 
|   N/Table Total | 
|-------------------------| 


Total Observations in Table: 50000 


      |  AE |  CT |  DC |  DE |  MA | 
      |-----------|-----------|-----------|-----------|-----------| 
      |   5 |  2512 |  339 |  711 |  4252 | 
      |  0.000 |  0.050 |  0.007 |  0.014 |  0.085 | 
      |-----------|-----------|-----------|-----------|-----------| 


      |  MD |  ME |  NH |  NJ |  NY | 
      |-----------|-----------|-----------|-----------|-----------| 
      |  4172 |  343 |  665 |  11068 |  16530 | 
      |  0.083 |  0.007 |  0.013 |  0.221 |  0.331 | 
      |-----------|-----------|-----------|-----------|-----------| 


      |  PA |  RI |  VA |  VI |  VT | 
      |-----------|-----------|-----------|-----------|-----------| 
      |  8718 |  402 |  27 |  45 |  211 | 
      |  0.174 |  0.008 |  0.001 |  0.001 |  0.004 | 
      |-----------|-----------|-----------|-----------|-----------| 

我是一個初學者,並且已經開始與R工作了4天。我在這種情況下花了大約4個小時,所以我會很感激任何幫助。提前致謝。

回答

3

發佈時,最好提供一個實際可行的示例。您提供了輸出,但沒有提供用於生成它的數據,因此您的輸出無法重新創建。我將創建在這個例子中(前4個州)的部分數據:

state <- c(rep("AE", 5), rep("CT", 2512), rep("DC", 339), rep("DE", 711)) 

現在,你應該保存的prop.table()結果的對象,所以你可以繼續使用它。

tab <- prop.table(table(state)) 

那麼你可能想創建一個data.frame與國家作爲一列,比例爲另一個,就像這樣:

df <- data.frame(state=names(tab), proportion=as.numeric(tab)) 

df內容現在是:

state proportion 
1 AE 0.001401738 
2 CT 0.704233249 
3 DC 0.095037847 
4 DE 0.199327166 

如果你還想按比例排序行,那麼你可以做

df <- df[order(df$proportion),] 
+0

謝謝mbrbrich。我將在下一次發佈數據。我的數據有5萬行,因此您認爲發佈代碼段可以嗎? – watchtower

+0

是的,我不是說你需要發佈整個數據,只是一個小例子。 – mrbrich

+2

@watchtower [見這裏](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610)爲未來的職位 – Jaap