列联表转化为带有类别频数的数据框R代码
时间: 2023-10-23 15:12:48 浏览: 145
R语言列联表
5星 · 资源好评率100%
假设已有一个名为mytable的列联表,其中行为变量A,列为变量B,频数为counts。可以使用以下代码将其转化为带有类别频数的数据框:
```R
library(tidyr)
# 将列联表转化为数据框
df <- as.data.frame(mytable)
# 将数据框从宽格式转化为长格式
df_long <- gather(df, key = "B", value = "counts", -A)
# 计算每个A类别下B类别的频数
df_freq <- df_long %>%
group_by(A, B) %>%
summarise(freq = sum(counts))
# 将频数添加回原数据框
df_result <- df %>%
left_join(df_freq, by = c("A", "B"))
```
其中,第一个步骤将列联表转化为数据框;第二个步骤使用`tidyr`包中的`gather()`函数将数据框从宽格式转化为长格式;第三个步骤使用`dplyr`包中的`group_by()`和`summarise()`函数计算每个A类别下B类别的频数;最后一个步骤将频数添加回原数据框。
阅读全文