2016-07-29 10 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 | 
      |-----------|-----------|-----------|-----------|-----------| 

私は初心者で、過去4日間Rで作業を始めました。私はこの状況で約4時間を過ごしたので、何か助けていただければ幸いです。前もって感謝します。

答えて

3

転記するときは、実際に動作する例を提供することをお勧めします。出力を提供しましたが、生成に使用されたデータは出力されませんでしたので、出力を再作成することはできません。あなたはそれで作業を続けることができますので、あなたがオブジェクトにprop.table()の結果を保存する必要があり、今

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

:私は、この例のデータの一部(最初の4の状態)を作成します。

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

ありがとうmrbrich。私は次回以降のデータを掲載する予定です。私のデータには50Kの行があるので、スニペットを投稿しても大丈夫だと思いますか? – watchtower

+0

はい、データ全体を投稿する必要はありませんが、ほんの一例です。 – mrbrich

+2

@watchtower [http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610]将来の投稿のためのガイダンス – Jaap

関連する問題