所以我想计算列的不同值。这是数据框:
asa
----
aa
bb
aa
aa
bb
cc
dd
想要得到:
asa | n
--------
aa | 3
bb | 2
cc | 1
dd | 1
我已经尝试使用来自 Counting unique / distinct values by group in a data frame 的 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
或者使用来自dplyr
的tally
library(dplyr)
df1 %>%
group_by(asa) %>%
tally()
# asa n
# (chr) (int)
#1 aa 3
#2 bb 2
#3 cc 1
#4 dd 1
关于r - 计算 R 中数据框列中的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37134405/