计算数据帧中元素的频率

Bar*_*aby 5 r

我有以下数据框架

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
Run Code Online (Sandbox Code Playgroud)

在应用计数时我得到了

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
Run Code Online (Sandbox Code Playgroud)

当我申请

计数(SelectVar == Dxa2)

     b     c     e     f     g     h     j     freq
1 FALSE FALSE FALSE FALSE FALSE FALSE FALSE     1 
Run Code Online (Sandbox Code Playgroud)

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

dic*_*koa 7

您可以将您data.frame转为a 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 
Run Code Online (Sandbox Code Playgroud)

你可以把结果提供给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
Run Code Online (Sandbox Code Playgroud)