汇总表中各列的字符值比例

Chr*_*ann 3 r dataframe dplyr summarize

在这种数据框中:

df <- data.frame(
     w1 = c("A","A","B","C","A"),
     w2 = c("C","A","A","C","C"),
     w3 = c("C","A","B","C","B")
   ) 
Run Code Online (Sandbox Code Playgroud)

我需要计算所有列中字符值的列内比例。有趣的是,以下代码适用于大型实际数据集,但对上述玩具数据会引发错误:

df %>%
  summarise(across(everything(), ~prop.table(table(.))*100))
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一个数据框,其中每列中所有值的精确比例加上一列指示值:

       w1  w2  w3
1  A   60  40  20
2  B   20   0  40
3  C   20  60  40
Run Code Online (Sandbox Code Playgroud)

Tho*_*ing 5

你可以尝试table+stack像下面这样

> proportions(table(stack(df)), 2) * 100
      ind
values w1 w2 w3
     A 60 40 20
     B 20  0 40
     C 20 60 40
Run Code Online (Sandbox Code Playgroud)