问题描述
Year Var Count
2019 A 10
2020 B 23
2019 B 36
2020 A 42
如何使用“计数”列作为频率制作年份 x Var 列联表?
解决方法
在tidyverse
中,在janitor
的帮助下,您可以:
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
,
我们可以在xtabs
中使用base R
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 <- structure(list(Year = c(2019L,2020L,2019L,2020L),Var = c("A","B","A"),Count = c(10L,23L,36L,42L)),class = "data.frame",row.names = c(NA,-4L))
,
使用 reshape
使其“宽”的基本 R 选项,即,
reshape(
df,direction = "wide",idvar = "Year",timevar = "Var"
)
给予
Year Count.A Count.B
1 2019 10 36
2 2020 42 23