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