SQLDF R:计算数据框中的唯一值

Sri*_*ine 0 r dataframe sqldf

我有一个只有一列的数据框。有 10 行。

(4.0 * 3.0)
(4.0 * 3.0)
(2.0 * (1.0 * (1.0 * 6.0)))
(4.0 * (3.0 * 1.0))
(6.0 * 2.0)
(6.0 * 2.0)
(2.0 * 6.0)
(2.0 * 6.0)
(2.0 * 6.0)
(6.0 * 2.0)
Run Code Online (Sandbox Code Playgroud)

我需要提取列中的唯一值及其出现的次数。使用 sqldf 包我能够获得唯一的值。但不是计数。

询问:

sqldf("SELECT V1, COUNT(DISTINCT V1) as DinctC from dataset GROUP BY V1")
Run Code Online (Sandbox Code Playgroud)

输出:

                           V1 DinctC
1 (2.0 * (1.0 * (1.0 * 6.0)))      1
2                 (2.0 * 6.0)      1
3         (4.0 * (3.0 * 1.0))      1
4                 (4.0 * 3.0)      1
5                 (6.0 * 2.0)      1
Run Code Online (Sandbox Code Playgroud)

我想要的是:

                           V1 DinctC
1 (2.0 * (1.0 * (1.0 * 6.0)))      1
2                 (2.0 * 6.0)      3
3         (4.0 * (3.0 * 1.0))      1
4                 (4.0 * 3.0)      2
5                 (6.0 * 2.0)      3
Run Code Online (Sandbox Code Playgroud)

编辑:正如 Tim Biegeleisen 指出的那样,“Distinct”不是一个函数,因此不需要括号。因此将DISTINCT(V1) 更新为 DISTINCT V1

Sri*_*ine 5

我们不需要 unique 关键字,因为我们使用的是 GROUP BY 子句。

sqldf("SELECT V1, COUNT(V1) as DinctC from dataset GROUP BY V1")
Run Code Online (Sandbox Code Playgroud)

结果:

                           V1 DinctC
1 (2.0 * (1.0 * (1.0 * 6.0)))      1
2                 (2.0 * 6.0)      3
3         (4.0 * (3.0 * 1.0))      1
4                 (4.0 * 3.0)      2
5                 (6.0 * 2.0)      3
Run Code Online (Sandbox Code Playgroud)