循环变量

时间:2016-03-23 16:12:26

标签: r

我在r中有一个数据子集:" Subset< - subset(x,select = c(" var1"," var2",&# 34; VAR3&#34))&#34 ;.现在我有两个函数可以创建两个不同的图形。一个是表格,另一个是条形图。 一个功能是" quick_table(variable_name,label,sort)" 另一个是由" table.desc< - describe(as.factor(eval(parse(text =" variable"))))"然后" pandoc.table(table.desc $ values)"。 我想创建一个for循环,遍历三个变量来创建六个图形。 问题是" quick_table"取决于变量名称,因此" var1"," var2"," var3"和" table.desc"取决于" x $ var1"," x $ var2",x $ var3"。

我的代码是:

for(variable in Subset) {
variable_name <- assign(sub("x$", replacement = "", x$variable, fixed = TRUE), variable)
label <- variable_name
sort <- variable_name

print(quick_table(variable_name, label, sort)
table.desc <- describe(as.factor(eval(parse(text = "variable"))))
print(pandoc.table(table.desc$values))
}

这似乎并没有遍历我的变量列表。 有任何想法吗? 提前致谢

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您可以使用eval(parse(text = )))从其名称字符串中调用变量。

例如,如果您想在同一个"x$var1", "x$var2", "x$var3"循环中调用变量的子集(每个变量名为for,则可以执行以下操作:

for(i in 1:3){ eval(parse(text = paste0("x$var", i))) }

这会调用x$var1x$var2x$var3。然后,您可以使用这些调用来创建所需的任何表。我希望这有帮助!