R 将变量传递给GGM
我有一个名为R 将变量传递给GGM,r,ggplot2,R,Ggplot2,我有一个名为panel的数据集,其中有多个感兴趣的分类变量 我想编写一个程序,使用for循环为每一对绘制马赛克图。 vars是具有以下列名称的向量: vars [1] "region" "urb" "sex" "race" "grade" "dt01" "dt02" "dt03" [9] "dt06" "dt07" "exercise" "kq7" 这是我的节目: library(ggmosaic) for (i in
panel
的数据集,其中有多个感兴趣的分类变量
我想编写一个程序,使用for
循环为每一对绘制马赛克图。vars
是具有以下列名称的向量:
vars
[1] "region" "urb" "sex" "race" "grade" "dt01" "dt02" "dt03"
[9] "dt06" "dt07" "exercise" "kq7"
这是我的节目:
library(ggmosaic)
for (i in 1:12){
for (j in 1:12){
a <- vars[i]
b <- vars[j]
if (j > i){
m <- ggplot(data = panel)
m <- m + geom_mosaic(aes(x = product(a), fill = b))
}
print(m)
}
}
我尝试了
aes\u string
,但没有效果。两条建议供考虑
1:生成您的配对&使用单个循环来遍历它们,而不是重复组合的双循环
vars <- c("region", "urb", "sex", "race", "grade", "dt01",
"dt02", "dt03", "dt06", "dt07", "exercise", "kq7")
vars.pair <- combn(vars, 2, simplify = FALSE) # list of all valid pairs
> head(vars.pair)
[[1]]
[1] "region" "urb"
[[2]]
[1] "region" "sex"
[[3]]
[1] "region" "race"
[[4]]
[1] "region" "grade"
[[5]]
[1] "region" "dt01"
[[6]]
[1] "region" "dt02"
两项建议供考虑 1:生成您的配对&使用单个循环来遍历它们,而不是重复组合的双循环
vars <- c("region", "urb", "sex", "race", "grade", "dt01",
"dt02", "dt03", "dt06", "dt07", "exercise", "kq7")
vars.pair <- combn(vars, 2, simplify = FALSE) # list of all valid pairs
> head(vars.pair)
[[1]]
[1] "region" "urb"
[[2]]
[1] "region" "sex"
[[3]]
[1] "region" "race"
[[4]]
[1] "region" "grade"
[[5]]
[1] "region" "dt01"
[[6]]
[1] "region" "dt02"
for(i in seq_along(vars.pair)){
p1 <- vars.pair[[i]][1]
p2 <- vars.pair[[i]][2]
m <- ggplot(data = panel) +
geom_mosaic(aes_string(x = paste0("product(", p1, ")"),
fill = p2))
print(m)
}