[英]Counting distinct values in column of a data frame in R
所以我想计算一列的不同值。 这是数据框:
asa
----
aa
bb
aa
aa
bb
cc
dd
想要获得:
asa | n
--------
aa | 3
bb | 2
cc | 1
dd | 1
我已经尝试使用 ddply 从数据框中按组计算唯一/不同的值并执行此代码:(可重现)
asa<-c("aa","bb","aa","aa","bb","cc","dd")
asad<-data.frame(asa)
ddply(asad,~asa,summarise,n=length(unique(asa)))
但我得到了:
asa n
1 aa 1
2 bb 1
3 cc 1
4 dd 1
它没有进行计算。 注意列中的值可以随时添加。 所以它并不总是“aa”、“bb”、“cc”和“dd”。 它也可以用空格或逗号分隔(“aa bb”,“aa,bb”或“aa,bb”)必须有办法做到这一点。 提前谢谢你
我们可以使用table
setNames(as.data.frame(table(df1$asa)), c("asa", "n"))
# asa n
#1 aa 3
#2 bb 2
#3 cc 1
#4 dd 1
或与tally
从dplyr
library(dplyr)
df1 %>%
group_by(asa) %>%
tally()
# asa n
# (chr) (int)
#1 aa 3
#2 bb 2
#3 cc 1
#4 dd 1
更简单的是,只使用 as.data.frame 和 table 函数,没有其他参数。
as.data.frame(table(df$asa))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.