簡體   English   中英

如何匯總多列的值?

[英]How to summarize values across multiple columns?

我有一個看起來像這樣的數據框:

1  2  3  4  5

A  B  A  B  A

C  B  B  B  B 

A  C  A  B  B

我想在頻率表中總結我的數據,如下所示:

   A  B  C
1  2  0  1
2  0  2  1
3  2  1  0
4  0  3  0
5  1  2  0

我怎么能做到這一點?

您可以使用以下解決方案:

library(tidyr)
library(janitor)

tab %>%
  pivot_longer(everything(), names_to = "nm", values_to = "val", 
               names_prefix = "X") %>%
  tabyl(nm, val)

 nm A B C
  1 2 0 1
  2 0 2 1
  3 2 1 0
  4 0 3 0
  5 1 2 0

你可以用

library(tidyr)

data %>% 
  pivot_longer(everything()) %>% 
  { table(.$name, .$value) }

返回

    A B C
  1 2 0 1
  2 0 2 1
  3 2 1 0
  4 0 3 0
  5 1 2 0

table base R選項

table(c(col(df1)),  c(t(df1)))
   
    A B C
  1 2 1 0
  2 1 1 1
  3 0 3 0
  4 1 1 1
  5 1 2 0

數據

df1 <- structure(list(`1` = c("A", "C", "A"), `2` = c("B", "B", "C"), 
    `3` = c("A", "B", "A"), `4` = c("B", "B", "B"), `5` = c("A", 
    "B", "B")), class = "data.frame", row.names = c(NA, -3L))

另一個帶有stack table選項

> t(table(stack(df)))
   values
ind A B C
  1 2 0 1
  2 0 2 1
  3 2 1 0
  4 0 3 0
  5 1 2 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM