2013-08-17 38 views
0

我有兩個矩陣從哪些值我減去像如下的值在一個矩陣中的值:代基於其它兩個矩陣

x=read.table("x.txt", sep= "\t", header=FALSE) 

9 3 8 2 0 
5 4 5 2 1 

y=read.table("y.txt", sep= "\t", header=FALSE) 

9 7 4 0 5 
3 1 0 0 1 

xy<-x-y 

0 -4 4 2 -5 
2 3 5 2 0 

我想替換在xy的值,如果x> 0且y == 0時,xy中的值被替換爲「D」,如果x == 0且y> 0,則替換爲「D」。 給我一個表像這樣:

0 -4 4 D A 
2 3 D D 0 

我曾嘗試不同的東西,比如一個循環:

out <- array(dim=dim(xy)) 

for (i in 1:length(xy)) { 
out[i] <- ifelse(x[i]==0, "D", 
ifelse(y[i]==0, "A", xy[i])) 
} 

但沒有工作的事,我歸因於在缺乏瞭解歸因於[i]的價值的位置。

我也嘗試過使用apply,但儘管通過互聯網瀏覽,但完全無法理解它是如何被應用於兩個數據框的(如果可以的話)。 任何幫助,非常感謝。

+0

我相信開始「我要......」的文本有一個錯字,第二個「D」應該是「A」 –

回答

1
> xy[x > 0 & y == 0] = "D" 
> xy 
    V1 V2 V3 V4 V5 
1 0 -4 4 D -5 
2 2 3 D D 0 
> xy[x == 0 & y > 0] = "A" 
> xy 
    V1 V2 V3 V4 V5 
1 0 -4 4 D A 
2 2 3 D D 0