使用 r 计算 data.frame 的多列中的字符出现次数

using r to count character occurrences in multiple columns of data.frame

我是 R 的新手,有一个 data.frame 有 100 列。每列都是字符数据,我试图总结一个字符在每列中出现的次数。我希望能够一次对所有列进行汇总,而不必为每一列键入代码。我试过了

occurrences <- table(unlist(my_df)) 

但是这个 table 给了我所有列的合并摘要(不是每列的摘要。

当我为一列做一个总结时,我的输出看起来是我想要的,但只针对那一列:

BG_occurrences <- table(unlist(my_df$G))
   1   na SOME 
  17   20    1

有没有一种方法可以同时对每列中的所有数据进行编码和汇总?我希望输出看起来像这样:

     1   na   SOME
BG:   17   20   1
sBG:  23   10   5
BX:   18   20   0
NG:   21   11   6

我们可以使用 lapply/sapply 遍历列并应用 table

lapply(my_df, table)

或者可以用矢量化的方式来完成

table(c(col(my_df)), unlist(my_df))

tidyverse

library(dplyr)
library(tidyr)
my_df %>%
   pivot_longer(cols = everything()) %>%
   count(name, value)