R循环分类变量

时间:2016-03-23 18:14:56

标签: r

我有变量“data $ LINE”和“data $ STATE”,我想用一个循环来重命名它们,而不是“data $”。然后我希望相同的循环在我的代码中输入“LINE”和“STATE”,但我也希望“data $ LINE”和“data $ STATE”也在循环中运行。原因是我有两个图形函数,一个依赖于一个名称,即“LINE”,另一个依赖于“data $ LINE”,我希望这两个图形为“LINE”和“STATE”运行,所以在循环之后,制作了4张图表。

代码是:

for(variable in c(data$LINE, data$STATE)) {
variable_name <- sub("data$", replacement = "", "data$variable", fixed = TRUE)
whatevergraphingfunction(variable)
differentgraphingfunction(variable_name)
}

这不能正常工作(它似乎没有创建2个variable_names),任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为你的问题出在for(variable in c(data$LINE, data$STATE)),因为你试图用'for function'的字符串连接'symbols',然后在sub()运行后将它们转换为名字。

#start with variables as strings
for(variable in c("data$LINE", "data$STATE")) {  
  #Remove the 'data$'
  variable_name <- sub("data$", replacement = "", variable, fixed = TRUE)

  # convert strings back to names
  as.name(variable)     
  as.name(variable_name)

  # Graph
  whatevergraphingfunction(variable)
  differentgraphingfunction(variable_name)

}

在不知道如何使用LINESTATE的情况下,我不确定您是否需要将它们称为名称。如果没有,只需删除as.name(variable_name)行。

如果这对您有用,请告诉我。