【问题标题】:Loop variable names to plot similar figures in R循环变量名称以在 R 中绘制相似的图形
【发布时间】:2021-01-04 19:00:10
【问题描述】:

我想通过使用变量列表来绘制相似的数字。

变量列表是“wuc_above、parti_above、“see_above”、“look_above”。所有这些变量都是虚拟变量(即它们等于 0 或 1)

绘制图形的代码是:

pdf(file ="mypath/wuc_above.pdf")
boxplot(x1[wuc_above==1] ,x2[wuc_above==1])
dev.off()
}

我想用“parti_above”、“see_above”、“look_above”替换变量“wuc_above”。 x1、x2 是一些从 0 到 7 的数值变量。

它的工作方式类似于 Stata 全局函数。但是,我不知道如何在 R 中实现这一点。有人可以帮助我吗?谢谢!

我写过类似的东西(当然这不起作用...)

varlist <- variable.names(wuc_above,parti_above)
for (i in varlist) {
pdf(file =paste0('"mypath/',i,'.pdf'"))
boxplot(x1[paste0(i)==1] ,x2[paste0(i)==1])
dev.off()
}

【问题讨论】:

  • 不,它从第一行开始不起作用,因为variable.names 是一个 R 函数,可能与该名称的 Stata 函数完全不同。在不了解x1 和x2 的情况下,我真的不能更具体。提供数据样本或至少提供数据结构:str(x1)、str(x2)。
  • 运行boxplot(x1[T] ,x2[T])会得到不同的结果吗?
  • "wuc_above、parti_above、"see_above"、"look_above" 是虚拟变量(即它们等于 0 或 1)。x1、x2 是一些从 0 到 7 的数值变量。@卡尔森

标签: r loops variables plot


【解决方案1】:

不要迭代变量名。将变量放在list 或data.frame 中,然后遍历列表项或数据框列。

您尚未共享任何数据,因此这完全未经测试(如果您需要更多帮助,请让您的示例可重现),但这样的事情应该可以工作:

varlist = list(wuc_above = wuc_above, parti_above = parti_above)
for (i in seq_along(varlist)) {
  pdf(file = paste0('mypath/', names(varlist)[i], '.pdf'))
  boxplot(x1[varlist[[i]] == 1] ,x2[varlist[[i]] == 1])
  dev.off()
}

请在How to make a list of data frames 上查看我的回答以获得良好的上下文。

【讨论】:

  • 非常感谢!这行得通。很抱歉没有分享数据。供他人参考,x1、x2 是从 0 到 7(整数)的数值变量,“wuc_above、parti_above、“see_above”、“look_above”是虚拟变量(即它们等于 0 或 1)。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
  • 2016-02-26
  • 2016-11-13
  • 2019-01-31
相关资源
最近更新 更多