私はRに変換しようとしているSQLクエリを持っている:Rのデータフレームは、このようなものに見えるところRの特定の列で値をグループ化して別々にカウントする方法はありますか。
SELECT t."col1", t."col2", count(DISTINCT t."date")
FROM t
GROUP BY t."col1", t."col2"
:
:col1 col2 date
a 1 2016-01-09
a 1 2016-01-02
a 1 2016-01-02
b 1 2016-01-07
b 1 2016-01-03
b 1 2016-01-02
b 1 2016-01-07
b 2 2016-01-11
を実際の出力は次のようなものでなければなりません
col1 col2 count
a 1 2
b 1 3
b 2 1
私はplyrパッケージのcountメソッドを見てきましたが、別個の日付の数は考慮していません。
Runinngこの
count(t, c("col1", "col2"))
はこれを生成します。
col1 col2 count
a 1 3
b 1 4
b 2 1
はどうすればRでのSQLクエリの動作を複製することができますか?あなたはDFと呼ばれるデータフレームに原子レベルのデータを持っていると仮定すると
を使用してオプションです。一意(df)、長さ) 'を指定します。しかし、他にも多くの方法があります。 plyrが必要な場合は、おそらく 'count(unique(df)、c(" col1 "、" col2 "))'を実行することができます。コード内のどこにでも一意のエントリが必要な指定をしていないと、あなたのソリューションがうまくいくとは思えませんでした。 –
'sqldf'パッケージを見てください。 – Prradep