首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中if循环的动态呈现条件

R中if循环的动态呈现条件
EN

Stack Overflow用户
提问于 2018-09-07 17:29:09
回答 1查看 148关注 0票数 1

我正在尝试为一个没有预定义的if循环创建一个条件。条件的“长度”取决于存储先前计算值的列表的长度。

你可以在下面的代码中看到这一过程。

我尝试用一些函数(expression()eval() ...)来转换我的字符条件。以便该条件对于if循环是可读的。但都不管用..。

所以我希望你能帮我解决我的问题。

我的代码:

代码语言:javascript
运行
复制
# 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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-07 17:36:32

使用eval时,需要对文本进行解析:

代码语言:javascript
运行
复制
eval(parse(text=condition))

这在您的示例中返回TRUE,因此您可以按如下方式使用它:

代码语言:javascript
运行
复制
if(eval(parse(text=condition))) {
  print("do this ...")
} else {
  print("do that ...")
}  # end if-loop

输出:

代码语言:javascript
运行
复制
 [1] "do this ..."

你可以在这里找到更多关于eval的信息:Evaluate expression given as a string

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52219541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档