我有变量名列表。
list = c("smoke", "ptd", "ht", "ui", "racecat", "visit")
我想制作一系列这样的情节。
plot(low[somevariable=="0"] ~ age[somevariable=="0"])
我想用列表中的每个变量名替换somevariable。例如,
plot(low[smoke=="0"] ~ age[smoke=="0"])
plot(low[ptd=="0"] ~ age[ptd=="0"])
......
plot(low[visit=="0"] ~ age[visit=="0"])
我试图创建一个for循环并使用各种东西来替换一些变量,例如
list[i], paste(list[i]), substitute(list[i]), parse(list[i])
但它们都不起作用。我真的很感激一些帮助。提前致谢。
答案 0 :(得分:1)
您可以尝试:
for(i in list) {
print(plot(low[get(i) == 0] ~ low[get(i) == 0]))
}
答案 1 :(得分:0)
这是你想要做的一个简单的例子。您可以使用get
查找相关的命名变量:
set.seed(1)
x <- rnorm(100)
y <- rnorm(100)
a <- rnorm(100)
b <- rnorm(100,10)
l <- c('a','b')
# histogram of one variable:
hist(get(l[1]))
# loop of plots more like what you're going for:
for(i in 1:length(l)) plot(y[get(l[i])<2] ~ x[get(l[i])<2])
答案 2 :(得分:0)
找到解决方案:
eval(parse(text=list[i]))
还有另一篇文章解决了同样的问题: