bm 是我的数据集,我想遍历数据集,每次取列名并绘制一个图
for (i in colnames(bm)) {
print(i)
print(plot_xtab(bm$y,
bm$i,
margin = "row",
bar.pos = "stack",
axis.titles = "Deposit Subscription",
legend.title = 1,
show.values = TRUE,
show.n = FALSE,
geom.size = 0.5, expand.grid = TRUE, vjust = "right"))
}
以下代码适用于联系人是我的第一个列标题/名称
print(plot_xtab(bm$y,
bm$contact,
margin = "row",
bar.pos = "stack",
axis.titles = "Deposit Subscription",
legend.title = 1,
show.values = TRUE,
show.n = FALSE,
geom.size = 0.5, expand.grid = TRUE, vjust = "right"))
我已经测试发现循环中的 i 输出确实显示了正确的列标题:“联系人”、“工作”等;不知道为什么 bm$i 返回 NULL
您i
是一个字符串,您不能将它与$
运算符一起使用。您需要使用[]
或[[]]
。
这两个运算符之间存在一些细微的差异,具体取决于类bm
是什么以及plot_xtab
期望的是什么,但更安全的赌注可能是bm[[i]]
在您的循环中使用(而不是bm$i
)。
实际上,由于您似乎没有在其他任何地方使用列名,因此您也可以遍历列,for(i_col in bm)
然后使用i_col
代替bm[[i]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句