我在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))
}
这似乎并没有遍历我的变量列表。 有任何想法吗? 提前致谢
答案 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$var1
,x$var2
和x$var3
。然后,您可以使用这些调用来创建所需的任何表。我希望这有帮助!