[英]SQLDF R: Counting unique values in a data frame
我有一列的数据框。 有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)
我需要提取列中的唯一值及其发生的次数。 使用sqldf包,我可以获得唯一的值。 但不算在内。
查询:
sqldf("SELECT V1, COUNT(DISTINCT V1) as DinctC from dataset GROUP BY V1")
输出:
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
我想要的是:
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
编辑 :正如蒂姆·比格莱森(Tim Biegeleisen)所指出的,“区别”不是一个功能,因此不需要括号。 因此,将DISTINCT(V1)更新为DISTINCT V1
因为我们正在使用GROUP BY子句,所以我们不需要distinct关键字。
sqldf("SELECT V1, COUNT(V1) as DinctC from dataset GROUP BY V1")
结果:
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
我们可以用count
library(dplyr)
count(df, V1)
# A tibble: 5 x 2
# V1 n
# <chr> <int>
#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
或以base R
为base R
table
table(df$V1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.