假设我有:
v = rep(c(1,2, 2, 2), 25)
现在,我想计算每个唯一值出现的次数。unique(v)
返回唯一值是什么,但不返回它们有多少。
> unique(v)
[1] 1 2
我想要能给我的东西
length(v[v==1])
[1] 25
length(v[v==2])
[1] 75
但作为更一般的一行代码:)类似如下的内容(但不完全是):
#<doesn't work right> length(v[v==unique(v)])
发布于 2010-11-18 21:23:34
也许桌子就是你想要的?
dummyData = rep(c(1,2, 2, 2), 25)
table(dummyData)
# dummyData
# 1 2
# 25 75
## or another presentation of the same data
as.data.frame(table(dummyData))
# dummyData Freq
# 1 1 25
# 2 2 75
发布于 2015-09-08 03:08:30
如果您有多个因子(=多维数据框),则可以使用dplyr
包来计算每个因子组合中的唯一值:
library("dplyr")
data %>% group_by(factor1, factor2) %>% summarize(count=n())
它使用管道操作符%>%
来链接数据帧data
上的方法调用。
发布于 2014-09-13 04:09:57
它是使用aggregate
的单行方法。
> aggregate(data.frame(count = v), list(value = v), length)
value count
1 1 25
2 2 75
https://stackoverflow.com/questions/4215154
复制相似问题