如何为 table 中的每一行创建 ifelse 语句

How to make an ifelse statement for each row in a table

我正在尝试制作一个 ifelse 语句,为 table 中的每一行提供一个结果,其中包含基于某些列的未定义行。

在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

数据叫做Phyto。

如果一行中的所有数字都不同于 "NA",我希望得到结果“0”;如果一行中的 1 个值是 "NA",我希望得到结果“1”。

当我尝试使用代码时

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"

由于代码应该用于具有不同行数的数据集,因此如果我可以编写不包含固定行数的代码会更好。

有人对这个问题有什么建议吗?

谢谢

我想你的意思是你想要得到结果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