可视化双向加权频率 table
Visualizing a two-way weighted frequency table
dat <- data.frame(gender = c("F","F","F","M","F","U"), vol = c(500,750,1250,NA,300,700),weight=c(1.36,0.67,5.22,1.67,1.15,1.29))
gender vol weight
1 F 500 1.36
2 F 750 0.67
3 F 1250 5.22
4 M NA 1.67
5 F 300 1.15
6 U 700 1.29
如果我们有上面的数据框并创建一个双向加权频率table:
library(questionr)
two_way <- data.frame(wtd.table(dat$gender,y=dat$vol,weights=dat$weight))
看起来像这样:
Var1 Var2 Freq
1 F 300 1.15
2 M 300 0.00
3 U 300 0.00
4 F 500 1.36
5 M 500 0.00
6 U 500 0.00
7 F 700 0.00
8 M 700 0.00
9 U 700 1.29
10 F 750 0.67
11 M 750 0.00
12 U 750 0.00
13 F 1250 5.22
14 M 1250 0.00
15 U 1250 0.00
将其形象化的最佳方式是什么?像这样可视化加权数据时,我应该使用不同的方法吗?
Quick-R 提到:
Use the vcd package for visualizing relationships among categorical data (e.g. mosaic and association plots).
我的第一个想法是使用 ggplot2
包中的 geom_count
(以前的 stat_sum
)函数。使用它,您可以使用例如绘制 table x 轴上的性别和 y 轴上的体积。比频率将显示为圆圈的大小
ggplot(two_way, aes(x=Var1, y=Var2)) +
stat_sum(aes(size=Freq))
library(vcd)
library(magrittr)
xtabs(weight ~ gender + vol, dat) %>%
mosaicplot(shade = T)
dat <- data.frame(gender = c("F","F","F","M","F","U"), vol = c(500,750,1250,NA,300,700),weight=c(1.36,0.67,5.22,1.67,1.15,1.29))
gender vol weight
1 F 500 1.36
2 F 750 0.67
3 F 1250 5.22
4 M NA 1.67
5 F 300 1.15
6 U 700 1.29
如果我们有上面的数据框并创建一个双向加权频率table:
library(questionr)
two_way <- data.frame(wtd.table(dat$gender,y=dat$vol,weights=dat$weight))
看起来像这样:
Var1 Var2 Freq
1 F 300 1.15
2 M 300 0.00
3 U 300 0.00
4 F 500 1.36
5 M 500 0.00
6 U 500 0.00
7 F 700 0.00
8 M 700 0.00
9 U 700 1.29
10 F 750 0.67
11 M 750 0.00
12 U 750 0.00
13 F 1250 5.22
14 M 1250 0.00
15 U 1250 0.00
将其形象化的最佳方式是什么?像这样可视化加权数据时,我应该使用不同的方法吗?
Quick-R 提到:
Use the vcd package for visualizing relationships among categorical data (e.g. mosaic and association plots).
我的第一个想法是使用 ggplot2
包中的 geom_count
(以前的 stat_sum
)函数。使用它,您可以使用例如绘制 table x 轴上的性别和 y 轴上的体积。比频率将显示为圆圈的大小
ggplot(two_way, aes(x=Var1, y=Var2)) +
stat_sum(aes(size=Freq))
library(vcd)
library(magrittr)
xtabs(weight ~ gender + vol, dat) %>%
mosaicplot(shade = T)