This question already has answers here:
Count number of occurences for each unique value

(13个回答)


3年前关闭。




我有以下数据框
SelectVar

   b    c    e    f    g    h    j
1 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2
2 Dxb2 Dxb2 Dxb2 Dxb2 Dxc2 Dxc2 Dxc2
3 Dxd2 Dxi2 tneg tpos Dxd2 Dxi2 tneg

当申请计数我得到
count(SelectVar)

   b    c    e    f    g    h    j   freq
1 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2   1
2 Dxb2 Dxb2 Dxb2 Dxb2 Dxc2 Dxc2 Dxc2   1
3 Dxd2 Dxi2 tneg tpos Dxd2 Dxi2 tneg   1

当我申请

count(SelectVar == Dxa2)
     b     c     e     f     g     h     j     freq
1 FALSE FALSE FALSE FALSE FALSE FALSE FALSE     1

我无法弄清楚如何在SelectVar中计算不同元素Dxa2,Dxb2 ...的频率

最佳答案

您可以将data.frame转换为vector,然后使用table

df <- read.table(text = "   b    c    e    f    g    h    j
1 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2 Dxa2
2 Dxb2 Dxb2 Dxb2 Dxb2 Dxc2 Dxc2 Dxc2
3 Dxd2 Dxi2 tneg tpos Dxd2 Dxi2 tneg", header = TRUE, row.names = 1)

table(unlist(df))
## Dxa2 Dxb2 Dxd2 Dxi2 tneg tpos Dxc2
##    7    4    2    2    2    1    3

您也可以将结果转换为data.frame
as.data.frame(table(unlist(df)))
##   Var1 Freq
## 1 Dxa2    7
## 2 Dxb2    4
## 3 Dxd2    2
## 4 Dxi2    2
## 5 tneg    2
## 6 tpos    1
## 7 Dxc2    3

关于r - 计算数据帧中元素的频率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21565605/

10-12 17:30