首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中使用for循环和if else语句

在R中使用for循环和if else语句
EN

Stack Overflow用户
提问于 2013-04-09 13:20:01
回答 3查看 22.3K关注 0票数 1

我正在尝试创建一个for循环,其中包含一个if else语句。我的代码如下所示:

代码语言:javascript
运行
复制
for(i in 1:length(assignmentlist[,1]))
{if assignmentlist$Approve[i]=="1"
      {ApproveAssignment(assignments=assignmentlist$AssignmentId[i],sandbox=T)}
  else {RejectAssignment(assignments=assignmentlist$AssignmentId[i],sandbox=T)}}

而“分配列表”如下所示

代码语言:javascript
运行
复制
> assignmentlist
   AssignmentId    Approve                   
1          5135          1 
2          8963          0
3          6823          0
4          3287          1

基本上,我想对所有在“批准”库中有"1“的条目执行"ApproveAssignment”函数。问题是,我希望在() ApproveAssignment函数中使用相同的索引(相同的i)。不幸的是,这似乎行不通。有没有人有温和的方法来避免这个问题?

编辑:批准分配函数是一个函数,它在API上批准机械Turk的特定分配,并且是MTurkR包的一部分。

任何帮助你都会非常感激的!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-09 13:39:44

我不明白这一点,因为youy循环的"i“可以直接用于您的函数:

代码语言:javascript
运行
复制
ApproveAssignment <- function(assignments=NULL, sandbox=NULL) cat(i, "was approved\n")
RejectAssignment <- function(assignments=NULL, sandbox=NULL) cat(i, "was rejected\n")

for(i in 1:length(assignmentlist[,1])){
  if (assignmentlist$Approve[i]=="1")
    ApproveAssignment(assignments=assignmentlist$AssignmentId[i],sandbox=T)
  else
    RejectAssignment(assignments=assignmentlist$AssignmentId[i],sandbox=T)
    }
票数 3
EN

Stack Overflow用户

发布于 2013-04-09 13:32:49

如果我假设您想在其中使用它,那么如果您是ApproveAssignment的作者,那么应该将索引作为附加参数交给函数。

代码语言:javascript
运行
复制
ApproveAssignment <- function(assignments, sandbox, index) { ... }
票数 0
EN

Stack Overflow用户

发布于 2013-05-02 10:01:54

ApproveAssignmentRejectAssignment内部循环通过AssignmentIds向量对API进行赋值特定的调用,所以您所要做的就是给它一个AssignmentIds向量,而不需要循环或任何条件。

代码语言:javascript
运行
复制
ApproveAssignment(assignments=assignmentlist$AssignmentId[assignmentlist$Approve==1],sandbox=T)
RejectAssignment(assignments=assignmentlist$AssignmentId[!assignmentlist$Approve==1],sandbox=T)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15903091

复制
相关文章

相似问题

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