繁体   English   中英

在 R 的列表中执行 function

[英]perform a function in a list in R

我想在我的列表中执行 function,计算我的代码的回报。 目的是为我列表中的每个代码添加一列。

ticker = c("BTC-USD", "^GDAXI")
Stocks = lapply(ticker, getSymbols, source = "yahoo", auto.assign = FALSE)
names(Stocks) = ticker
Return_cal = function(x) {
  x$Return_log = periodReturn(x[,1], period = "daily", type = "log")
}

如何为列表中的每个元素执行返回计算,最后每个代码都有一列?

谢谢

如果不在 R 的标准安装中,请务必参考各自的 package 功能。 例如,我们不知道getSymbols()做了什么以及它的 output 是什么样子,因为我们不知道你从哪里得到 function。 periodReturn

您可以通过预先加载它来指示 package,例如library(mypackage) ,或者您可以将 package 预先添加到 ZC1C425268E68385D1AB5074C17A94F14 函数调用(例如mypackage::funnyfunction()中。

现在,我假设getSymbols()返回一个矩阵或数据框,以便第一列可以用作periodReturn(x[,1], ...)中的参数。 然后,您可以将periodReturn()与所需的 arguments 应用于Stocks中的每个元素,如下所示:

ticker <- c("BTC-USD", "^GDAXI")
Stocks <- lapply(ticker, getSymbols, source = "yahoo", auto.assign = FALSE)
names(Stocks) <- ticker
Return_cal <- function(x) {
  # this only adds the new column to x but the function does not return anything yet:
  x$Return_log <- periodReturn(x[,1], period = "daily", type = "log")
  x # this returns x
}
Stocks <- lapply(Stocks, Return_cal) # apply Return_cal to each element of Stocks

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM