我想根据 xy
数据帧的列中值的递增顺序对 xy1
数据帧的列中的值进行排序 .
x <- c(3,1,7,45,22,2)
y <- c(23,65,1,23,2,11)
xy <- data.frame(x,y)
x1 <- c(0.34,0.3,0.7,0.22,0.67,0.87)
y1 <- c(0.4,0.13,0.17,0.72,0.61,0.7)
xy1 <- data.frame(x1,y1)
> xy
x y
1 3 23
2 1 65
3 7 1
4 45 23
5 22 2
6 2 11
> xy1
x1 y1
1 0.34 0.40
2 0.30 0.13
3 0.70 0.17
4 0.22 0.72
5 0.67 0.61
6 0.87 0.70
以下是我想要的一个新的data.frame结果 - 注意它处理重复的观察(在 y
中有两个相同的值) . x1
和 y1
现在根据 xy
dataframe的每列中的值的顺序进行排序 .
x1 y1
1 0.30 0.17
2 0.87 0.61
3 0.34 0.70
4 0.70 0.40
5 0.67 0.72
6 0.22 0.13
3 回答
你可以试试这个:
哪个回报:
基本上只需单独安排
x1
和y1
x
和y
,然后组合x1
和y1
.您可以使用
order
函数来获取向量的排序顺序 .这产生了
您可以通过在结果中设置列名来美化输出:
现在,如果您不想手动输入所有内容,但有两个具有相同尺寸的数据框,则可以使用此单线程
哪个产生
由于这是基于两个数据集上的相应列,因此可以使用
Map
或者另一种选择是
order
基于'xy'的'xy','xy'