我正在尝试为未定义的if循环创建条件。条件的“长度”取决于我的列表的长度 先前计算出的值存储在哪里。
您可以在下面的我的代码中看到该过程。
我试图用某些函数(expression()
,eval()
...)转换字符条件,以便if循环可以读取该条件。但是什么都行不通...
所以我希望你能帮助我解决我的问题。
我的代码:
# the list with prior calculated values
List=list(0.96,0.89,0.78)
# rendering the condition
condition=character()
for (m in 1:length(List)) {
if (m==length(List)) {
condition=paste0(condition,"List[[",m,"]]>=0.6")
} else {
condition=paste0(condition,"List[[",m,"]]>=0.6 && ")
} # end if-loop
} # end for-loop
# to see what the condition looks like
print(condition)
# the just rendered condition in the if loop
if(condition) {
print("do this ...")
} else {
print("do that ...")
} # end if-loop
答案 0 :(得分:2)
使用eval时需要解析文本:
eval(parse(text=condition))
这在您的示例中返回TRUE,因此可以按以下方式使用它:
if(eval(parse(text=condition))) {
print("do this ...")
} else {
print("do that ...")
} # end if-loop
输出:
[1] "do this ..."
您可以在此处找到有关eval的更多信息:Evaluate expression given as a string