2014-10-07 7 views
-1

有之間的值的條件的選擇是一個矩陣:

 A B 

     0 36 
     0 4 
     4 24 
     0 13 
     0 11 
     11 13 
     0 6 
     6 20 
     0 12 
     12 20 
     0 11 
     0 33 
     33 40 
     0 31 
     0 5 
     5 39 
     0 7 
     7 32 
     0 34 
     0 13 
     0 16 
     16 24 

我想:

1)第一排序列B(保持列A和列B)之間的相同的對找 最小的值,比如x1。在這個矩陣中,x1是「4」。

2)然後在列A中找到大於或等於x1的值(排序列A可以 使這一步更容易,仍然在列A和列B之間保持相同的對)。
對於A列中值大於 大於或等於x1的列B中的匹配標準值,找到最小的值,例如x2。

在此矩陣中,列A中有4,5,6,7 ....大於或等於x1,4。 列A和列B之間的匹配對中,8是最小的。

3)然後找到A中大於或等於x2的值。 對於A中值大於 大於等於x2的B中的匹配邊值,找到最小的值,比如x3。

4)等等等等。

如何使用R來完成此操作?使用「dplyr」? 感謝您的幫助。

回答

0

我不確定你最終想要什麼,但我認爲你可以在沒有dplyr的情況下完成這項任務。我遵循你在使用subset()min()的問題中描述的內容。請注意我在這裏有一個數據框,而不是矩陣。 mydf是你的數據框。

foo <- mydf[order(mydf$B),] #sort your data frame 
x1 <- min(foo$B) 

#> x1 
#[1] 4 

foo2 <- subset(foo, A >= x1) 
x2 <- min(foo2$B) 

#> x2 
#[1] 8 

foo3 <- subset(foo2, A >= x2) 
x3 <- min(foo3$B) 
+0

嗨,jazzurro:它的工作原理。非常感謝你。接下來,我將嘗試編寫一個循環來完成此任務。再次感謝。 – Jason 2014-10-07 12:10:15

+0

@Jason很高興爲您提供幫助。 – jazzurro 2014-10-07 12:10:58