我有一个 data.frames 列表,并且想使用各种权重对它们的列进行操作。
例如,从第二列中减去第一列(已解决,见下文);或从第二个的两倍(未解决)中减去第一个和第三个。
感谢在回答这个问题时获得的慷慨帮助,我在没有权重的情况下使用Reduce
.
我希望能够灵活地使用重量 - 并且在更高的维度上。
到目前为止,我所拥有的是:
priceList <- data.frame(aaa = rnorm(100, 100, 10), bbb = rnorm(100, 100, 10),
ccc = rnorm(100, 100, 10), ddd = rnorm(100, 100, 10),
eee = rnorm(100, 100, 10), fff = rnorm(100, 100, 10),
ggg = rnorm(100, 100, 10)
)
colDiff <- function(x)
{
Reduce('-', rev(x))
}
tradeLegsList <- combn(names(priceList), 3, function(x) priceList[x], simplify = FALSE)
tradeList <- lapply(tradeLegsList, colDiff)
据我所知,Reduce
它并非旨在接受多个论点。
我可以用 , 和一些循环来做这个很长的路要走2* tradeLegsList[[1]]$bbb - tradeLegsList[[1]]$aaa - tradeLegsList[[1]]$ccc
,但它看起来不像R 方式。
有没有办法传入权重向量?
w = c(-1, 2, -1)
理想情况下,我会传递一个参数,例如colDiff
(或Reduce
)函数......或类似的东西。