我有一个只有一列的数据框。有 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
我们不需要 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)