R 返回一列的值,该列的值与;总结“第;,用于另一列

R 返回一列的值,该列的值与;总结“第;,用于另一列,r,group-by,summarize,R,Group By,Summarize,我有一个函数,它总结了abs列的第一个最佳值 abs5_fun <- function(x) { ... buysell <- group_by_at(buysell, vars(TIME,SECCODE, DAY)) buysell$abs <- (buysell$PRICE.y - buysell$PRICE.x)/(buysell$PRICE.y + buysell$PRICE.x)/2 abs1 <- as.data.frame(summarise(

我有一个函数,它总结了
abs
列的第一个最佳值

abs5_fun <- function(x) {

...
  buysell <- group_by_at(buysell, vars(TIME,SECCODE, DAY))
  buysell$abs <- (buysell$PRICE.y - buysell$PRICE.x)/(buysell$PRICE.y + buysell$PRICE.x)/2
  abs1 <- as.data.frame(summarise(buysell, abs = (head(sort(abs),5)[1])))
  abs2 <- as.data.frame(summarise(buysell, abs = (head(sort(abs),5)[2])))
  abs3 <- as.data.frame(summarise(buysell, abs = (head(sort(abs),5)[3])))
  abs4 <- as.data.frame(summarise(buysell, abs = (head(sort(abs),5)[4])))
  abs5 <- as.data.frame(summarise(buysell, abs = (head(sort(abs),5)[5])))
  return(as.data.frame(list(abs1 = abs1, abs2 = abs2, abs3 = abs3, abs4 = abs4, abs5 = abs5)))
}
输出:

abs5 <- abs5_fun(dataframe)

 abs1.TIME abs1.SECCODE abs1.DAY     abs1.abs abs2.TIME abs2.SECCODE abs2.DAY     abs2.abs abs3.TIME abs3.SECCODE
1     1e+08 SU24018RMFS2      100 0.0014609644     1e+08 SU24018RMFS2      100 0.0014609644     1e+08 SU24018RMFS2
2     1e+08 SU24018RMFS2      101 0.0024485414     1e+08 SU24018RMFS2      101 0.0024497609     1e+08 SU24018RMFS2
3     1e+08 SU24018RMFS2      102 0.0019588639     1e+08 SU24018RMFS2      102 0.0024509804     1e+08 SU24018RMFS2
4     1e+08 SU24018RMFS2      103 0.0022021537     1e+08 SU24018RMFS2      103 0.0022021537     1e+08 SU24018RMFS2
5     1e+08 SU24018RMFS2      104 0.0009779834     1e+08 SU24018RMFS2      104 0.0009779834     1e+08 SU24018RMFS2
6     1e+08 SU24018RMFS2      105 0.0016360580     1e+08 SU24018RMFS2      105 0.0018791211     1e+08 SU24018RMFS2
  abs3.DAY    abs3.abs abs4.TIME abs4.SECCODE abs4.DAY    abs4.abs abs5.TIME abs5.SECCODE abs5.DAY    abs5.abs
1      100 0.001461209     1e+08 SU24018RMFS2      100 0.001461209     1e+08 SU24018RMFS2      100 0.001485684
2      101 0.002450736     1e+08 SU24018RMFS2      101 0.003181596     1e+08 SU24018RMFS2      101 0.003188528
3      102 0.003660322     1e+08 SU24018RMFS2      102 0.004152418     1e+08 SU24018RMFS2      102 0.005174714
4      103 0.002688998     1e+08 SU24018RMFS2      103 0.003926307     1e+08 SU24018RMFS2      103 0.003926307
5      104 0.001100023     1e+08 SU24018RMFS2      104 0.001100023     1e+08 SU24018RMFS2      104 0.003165124
6      105 0.002445941     1e+08 SU24018RMFS2      105 0.002689000     1e+08 SU24018RMFS2      105 0.005413142

你为什么不把结果留下来呢?我使用了内部连接,但是结果中的观察数总是不正确的,即使我删除了重复的结果。我想直接从总结中得到它。为什么不让结果加入?我使用了内部加入,但结果中的观察数总是不正确的,即使我删除了重复的结果。我想直接从总结中得到。
abs5 <- abs5_fun(dataframe)

 abs1.TIME abs1.SECCODE abs1.DAY     abs1.abs abs2.TIME abs2.SECCODE abs2.DAY     abs2.abs abs3.TIME abs3.SECCODE
1     1e+08 SU24018RMFS2      100 0.0014609644     1e+08 SU24018RMFS2      100 0.0014609644     1e+08 SU24018RMFS2
2     1e+08 SU24018RMFS2      101 0.0024485414     1e+08 SU24018RMFS2      101 0.0024497609     1e+08 SU24018RMFS2
3     1e+08 SU24018RMFS2      102 0.0019588639     1e+08 SU24018RMFS2      102 0.0024509804     1e+08 SU24018RMFS2
4     1e+08 SU24018RMFS2      103 0.0022021537     1e+08 SU24018RMFS2      103 0.0022021537     1e+08 SU24018RMFS2
5     1e+08 SU24018RMFS2      104 0.0009779834     1e+08 SU24018RMFS2      104 0.0009779834     1e+08 SU24018RMFS2
6     1e+08 SU24018RMFS2      105 0.0016360580     1e+08 SU24018RMFS2      105 0.0018791211     1e+08 SU24018RMFS2
  abs3.DAY    abs3.abs abs4.TIME abs4.SECCODE abs4.DAY    abs4.abs abs5.TIME abs5.SECCODE abs5.DAY    abs5.abs
1      100 0.001461209     1e+08 SU24018RMFS2      100 0.001461209     1e+08 SU24018RMFS2      100 0.001485684
2      101 0.002450736     1e+08 SU24018RMFS2      101 0.003181596     1e+08 SU24018RMFS2      101 0.003188528
3      102 0.003660322     1e+08 SU24018RMFS2      102 0.004152418     1e+08 SU24018RMFS2      102 0.005174714
4      103 0.002688998     1e+08 SU24018RMFS2      103 0.003926307     1e+08 SU24018RMFS2      103 0.003926307
5      104 0.001100023     1e+08 SU24018RMFS2      104 0.001100023     1e+08 SU24018RMFS2      104 0.003165124
6      105 0.002445941     1e+08 SU24018RMFS2      105 0.002689000     1e+08 SU24018RMFS2      105 0.005413142
  abs1 <- as.data.frame(summarise(buysell, abs = (head(sort(abs),5)[1])))
  abs2 <- as.data.frame(summarise(buysell, abs = (head(sort(abs),5)[2])))
  abs3 <- as.data.frame(summarise(buysell, abs = (head(sort(abs),5)[3])))
  abs4 <- as.data.frame(summarise(buysell, abs = (head(sort(abs),5)[4])))
  abs5 <- as.data.frame(summarise(buysell, abs = (head(sort(abs),5)[5])))