gpt4 book ai didi

r - 将排名列添加到数据框中

转载 作者:行者123 更新时间:2023-12-04 05:23:27 26 4
gpt4 key购买 nike

我有一些每月数据,我想在我的数据框中添加一列,将第一列中的最小值与第一列中的最大值相关联。第一列中的第二个最小值到第一列中的第二个最大值,等等……

这是一些示例数据

x1<-c(100,151,109,59,161,104,170,101)
dat<-data.frame(x1)
rownames(dat)<-c('Apr','May', 'Jun','Jul', 'Aug', 'Sep', 'Oct', 'Nov')

x1
Apr 100
May 151
Jun 109
Jul 59
Aug 161
Sep 104
Oct 170
Nov 101

我试图让我的数据看起来像这样
     x1   x2
Apr 100 161
May 151 101
Jun 109 104
Jul 59 170
Aug 161 100
Sep 104 109
Oct 170 59
Nov 101 151

我要在排名、排序和顺序上循环。任何帮助,将不胜感激。

最佳答案

如果您创建一个具有配对的升序和降序值的临时对象,则相当简单:

> temp <- data.frame(asc =x1[order(x1)],desc=x1[rev(order(x1))])
> dat$x2 <- temp$desc[ match(dat$x1, temp$asc) ]
> dat
x1 x2
Apr 100 161
May 151 101
Jun 109 104
Jul 59 170
Aug 161 100
Sep 104 109
Oct 170 59
Nov 101 151
match函数旨在构造用作“[”参数的整数索引值。这是 merge里面的基本功能.

关于r - 将排名列添加到数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31793592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com