Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中运行转换循环时,我不断得到;if(t[val2,n]!=t[val2,val]){:缺少需要TRUE/FALSE的值";_R - Fatal编程技术网

在R中运行转换循环时,我不断得到;if(t[val2,n]!=t[val2,val]){:缺少需要TRUE/FALSE的值";

在R中运行转换循环时,我不断得到;if(t[val2,n]!=t[val2,val]){:缺少需要TRUE/FALSE的值";,r,R,我正在尝试编写一个以表作为输入的代码,该表可能有也可能没有同名的列 代码应该做的事情是一次遍历一列,如果找到匹配的列,它将按以下方式合并。如果合并时col1和col2都有值1,则它们有值2;如果它们有1和0,则合并时它们有值1,否则为0 在我的头脑中,代码应该可以工作,但我就是不明白为什么我会不断出现这个错误。我试图更改一些if子句条件,但仍然无法理解 任何帮助都将不胜感激,因为我已经在这个问题上困了很长时间 R码 m=ncol(t) while (m>0){ if(ncol(t)==

我正在尝试编写一个以表作为输入的代码,该表可能有也可能没有同名的列

代码应该做的事情是一次遍历一列,如果找到匹配的列,它将按以下方式合并。如果合并时col1和col2都有值1,则它们有值2;如果它们有1和0,则合并时它们有值1,否则为0

在我的头脑中,代码应该可以工作,但我就是不明白为什么我会不断出现这个错误。我试图更改一些if子句条件,但仍然无法理解

任何帮助都将不胜感激,因为我已经在这个问题上困了很长时间

R码

m=ncol(t)
while (m>0){
  if(ncol(t)==1){
    temp2=matrix(nrow = nrow(t),ncol =1)
    colnames(temp2)=colnames(t)[val]
    temp2=t[,val]
    t=as.matrix(t[,-val])
  }
  else{
  n=val+1
  while(colnames(t)[val]!=colnames(t)[n]&&n<ncol(t)){
    n=n+1}
  temp2=matrix(nrow = nrow(t),ncol =1)
  colnames(temp2)=colnames(t)[val]
  if(colnames(t)[val]==colnames(t)[n]){
    for (val2 in 1:nrow(t)){
       if(is.na(t[val2,val])==F){
      if(t[val2,val]==1){
        if(t[val2,n]==t[val2,val]){
        temp2[val2,1]=2
        }
        else{
          temp2[val2,1]=1
        }
          }
      else {
        if(t[val2,n]!=t[val2,val]){
        temp2[val2]=1}
        else
        {temp2[val2,1]=0}
      }

      }
      
    }
    t=as.matrix(t[,-c(val,n)])
    }
    else{
      temp2=t[,val]
      t=as.matrix(t[,-val])
    }
  }
  b2=cbind(b2,temp2)
m=ncol(t)
  }
示例输入

  |col1  |col2 |col3 |col2 |col6 |col1| 
  |------|-----|-----|-----|-----|----|
  |1     |0    |1    |0    |0    |0   |
  |0     |0    |1    |1    |0    |1   |
  |1     |1    |1    |0    |0    |1   |  
  |0     |1    |0    |1    |0    |0   | 
预期产量

|col1 |col2 |col3|col6| 
|:---:|:---:|:--:|:--:|  
|1    |0    |1   |0   |
|1    |1    |1   |0   |
|2    |1    |1   |0   |
|0    |2    |0   |0   |

欢迎使用SO。请提供一些输入数据以及您希望从中获得的输出。
|col1 |col2 |col3|col6| 
|:---:|:---:|:--:|:--:|  
|1    |0    |1   |0   |
|1    |1    |1   |0   |
|2    |1    |1   |0   |
|0    |2    |0   |0   |