首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-Markdown/R控制台中的If语句

R-Markdown/R控制台中的If语句
EN

Stack Overflow用户
提问于 2017-02-24 03:35:50
回答 1查看 352关注 0票数 0

在我编写的代码中,我正在尝试分析稀疏矩阵(mat)中所有行的每行真值的数量,我在尝试运行if语句时遇到了困难。

代码语言:javascript
复制
counter=0
geneCount=0
columnIndex=-1
cols=20
rows=20
for (col in 0:cols){
  columnIndex=columnIndex+1
  for (row in 0:rows){
    for (col in 0:cols){
      if (mat[row,col] = TRUE){
        counter=counter+1
      }
      if(counter = 2){
        sigArray[columnIndex]=sigArray[columnIndex]+1
        counter=0
        next
      }
    }
  }
}

我一直收到错误消息:

代码语言:javascript
复制
Error: unexpected '=' in:
"    for (col in 0:cols){
      if (mat[row,col] ="

用于第一个if语句。我尝试过使用双等号,但也不起作用。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-02-24 03:45:46

至少有两个问题。正如您所想,第一个问题是if语句是逻辑测试,因此需要相等测试运算符。您需要使用==来测试相等性。第二个问题是行和列的R索引以1开头,而不是0。因此,假设您的数据集中实际有21行和21列(即,从0到20就可以工作),我认为您应该像这样编辑语法:

代码语言:javascript
复制
counter=0
geneCount=0
columnIndex=0
cols=21
rows=21
for (col in 1:cols){
  columnIndex=columnIndex+1
  for (row in 1:rows){
    for (col in 1:cols){
      if (mat[row,col] == TRUE){
        counter=counter+1
      }
      if(counter == 2){
        sigArray[columnIndex]=sigArray[columnIndex]+1
        counter=0
        next
      }
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42424637

复制
相关文章

相似问题

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