2015-06-30 123 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