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])))