R 列具有计数值时的列联表

R 列具有计数值时的列联表,r,tidyverse,contingency,R,Tidyverse,Contingency,我有一个看起来像这样的数据框: Year Var Count 2019 A 10 2020 B 23 2019 B 36 2020 A 42 如何使用“计数”列作为频率制作x年Var列联表?我们可以在基本R中使用xtabs xtabs(Count ~ Year + Var, df1) # Var #Year A B # 2019 10 36 # 2020 42 23

我有一个看起来像这样的数据框:

Year      Var    Count
2019       A     10
2020       B     23
2019       B     36
2020       A     42

如何使用“计数”列作为频率制作x年Var列联表?

我们可以在
基本R
中使用
xtabs

xtabs(Count ~ Year + Var, df1)
#        Var
#Year    A  B
#   2019 10 36
#   2020 42 23
要包含行/列总计,可以使用
addmargins

addmargins(xtabs(Count ~ Year + Var, df1))
#     Var
#Year     A   B Sum
#  2019  10  36  46
#  2020  42  23  65
#  Sum   52  59 111
数据
df1在
tidyverse
中,在
看门人的帮助下,您可以执行以下操作:

library(tidyr)
library(janitor)

df %>%
  pivot_wider(names_from = Var, values_from = Count) %>%
  adorn_totals(where = c("row", "col"))

#  Year  A  B Total
#  2019 10 36    46
#  2020 42 23    65
# Total 52 59   111

使用
重塑
使其“宽”的基本R选项,即

给予


出于好奇,是否有一种方法可以同时包含列总计和行总计?@CarlV.Bresser更新为
addmargins
library(tidyr)
library(janitor)

df %>%
  pivot_wider(names_from = Var, values_from = Count) %>%
  adorn_totals(where = c("row", "col"))

#  Year  A  B Total
#  2019 10 36    46
#  2020 42 23    65
# Total 52 59   111
reshape(
  df,
  direction = "wide",
  idvar = "Year",
  timevar = "Var"
)
  Year Count.A Count.B
1 2019      10      36
2 2020      42      23