有一个矩阵:
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列之间保持相同的对。) 在列B中匹配的paird值中,列A中的值更大 等于或等于x1,找到最小的值,比如说x2。
在此矩阵中,A列中有4,5,6,7 ....大于或等于x1,4。 在列A和列B之间的匹配对中,8是最小的。
3)然后在A中找到大于或等于x2的值。 在B中匹配的paird值中,A中的值更大 等于或等于x2,找到最小的值,比如说x3。
4)等等等等。
如何使用R来完成此任务?使用" dplyr"? 谢谢你的帮助。
答案 0 :(得分: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)