在 R 中使用 for 循环时无法访问列

Tony Guo

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章