我有一些月度数据,我想在我的数据框中添加一列,将第一列中的最小值与第一列中的最大值相关联.第一列中的第二个最小值到第一列中的第二个最大值,例如......
这是一些示例数据
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
Run Code Online (Sandbox Code Playgroud)
我试图让我的数据看起来像这样
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
Run Code Online (Sandbox Code Playgroud)
我带着等级,排序和顺序进入圈子.任何帮助,将不胜感激.
如果您创建一个具有升序和降序值配对的临时对象,这是相当简单的:
> 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
Run Code Online (Sandbox Code Playgroud)
该match
函数旨在构造整数索引值,用作"["的参数.这是里面的基本功能merge
.
归档时间: |
|
查看次数: |
256 次 |
最近记录: |