2011-09-14 20 views
1

私は重複したdata.frameにポイントシリーズを持っています。レベルプロットを使用してそれらをプロットし、x、yのZ周波数として使用したいとします(例:x = 1の場合何回y = 2があったか)。これどうやってするの?まあ私がSQL構文で自分自身を説明するのは簡単です:R:レベルプロットで使用する頻度を数える

SELECT x, y, count(*) from data_frame GROUP BY x, y 

:)

答えて

2

変数によって定義されたグループによってデータフレームをまとめたこの種のはR.で* pply機能の多くは非常に一般的ですうまくいくでしょう。標準の応答これらの日がplyrパッケージからddplyを使用することです:

ddply(data_frame,.(x,y),summarise,total = NROW(piece)) 

は、一般的には、あなたが本当にすべての基本*pply機能とともに、plyrパッケージを学ぶ必要があります。

しかし、SQLをより快適に使用するには、sqldfパッケージを検討することをお勧めします。このパッケージを使用すると、SQLでこれらの種類のデータフレームを直接操作できます。

+0

ありがとうございました!興味深いですが、私はプライベートパッケージ – mkk

1

私は疑い、多くの人がplyr機能との良好な結果を得ることはありませんが、これは本当に簡単にこの結果の暗黙のニーズに応じて、tapplyの1、table、またはaveと答えている質問です。 tapplytableの両方は、実際には行列または配列であるため、アクセスが非常に容易な一時表を生成します。

with(data_frame, table(x , y)) 
+0

を試してみましょう。levelplot()でresulを使うのは簡単ですか? – mkk

+0

@mkk。私は確かにしようとしていますが、より詳細を必要とするでしょう。 'levelplot'はちょうどレギュラーであり、Sarkarは彼のコードを"普通 "にするための協調的な努力をしています。 –

+0

ありがとう!これまでのソリューションはうまくいきましたが、私の大規模なデータセットでは機能しなかったので、私はあなたのアプローチを試してみましょう。新しいデータフレームを生成するには5分では足りませんでした。 – mkk

関連する問題