2015-06-30 95 views
0

我试图做一个ifelse语句,给出基于某些列的未定义行的表中的每一行的结果。如何为表中的每一行做一个ifelse语句

它被设定为R工作室

我有一个矩阵看起来像这样

Resp Acdev weight EQR S1 S2 S3 refcon status 
1  2  3  4  5 6 7  NA  9 
0  11 12 13  14 15 16  1  18 
1  20 21 22  23 24 25  2  21 
0  29 30 31  32 33 34  1  NA 

的数据称为弗陶。

如果一行中的所有数字与“NA”和“1”不同,如果一行中的值为“NA”,我希望得到结果“0”。

当我尝试使用代码

l=ifelse((Phyto[,8]!="" && Phyto[,2]!="" && Phyto[,9]!="" && Phyto[,3]!="" && Phyto[,1]!=""),0,1) 
I get the result "1", but would like to get the result "1", "0", "1", "0" 

由于代码应该在数据具有不同的行数设置使用,以便将是可取的,如果我可以做一个代码,不包括固定数量的行。

有没有人有问题的建议?

感谢

+0

这是什么语言&系统?请给出示例输入,输出和预期输出。请参阅[this](http://stackoverflow.com/help/mcve)。 – philipxy

+0

我编辑了这篇文章,希望它有帮助! – EmilieK

+1

考虑添加[rstudio]标签。 – CiaPan

回答

0

我想你的意思是你想要得到的结果1, 0, 0, 1

这应该这样做

l <- ifelse(is.na(rowSums(Phyto)),1,0) 

一些测试数据

Phyto <- rbind(c(2, 3, 5), c(4, NA, 11), c(5, 5, 5), c(7, 1, NA)) 
l <- ifelse(is.na(rowSums(Phyto)),1,0) 

息率

> Phyto 
    [,1] [,2] [,3] 
[1,] 2 3 5 
[2,] 4 NA 11 
[3,] 5 5 5 
[4,] 7 1 NA 
> l 
[1] 0 1 0 1 
+0

非常感谢!这工作完美 – EmilieK