Как запустить функцию для всех элементов списка с несколькими аргументами - PullRequest
0 голосов
/ 15 октября 2019

У меня есть три кадра данных. Первый кадр данных - это файл возврата товара, состоящий из 240 строк и 427 столбцов. Второй файл ранга акций, состоящий из 240 строк и 427 столбцов. Третий состоит из количества акций, которые должны быть включены 240 строк и 1 столбец. Я могу запустить это как один за другим, взяв 1: 6 строк. Затем к 6:12 и так далее. Но это займет много времени. Вот почему я создал три списка. Первый список состоит из биржевых возвратов, состоит из 40 элементов, каждый элемент состоит из 6 строк и 427 столбцов. Второй список состоит из биржевых рядов, содержащих 40 элементов, состоит из 6 строк и 427 столбцов. Третий список состоит из количества подлежащих включению акций, состоит из 40 элементов, каждый элемент состоит из 6 строк и 1 столбца. Теперь я не знаю, как использовать семейные функции для одновременного выполнения тезисов.

time_series_momentum<-function(xts.ret,xts.rank,n=1){
  # for trading the top ranked asset, replace all ranks above n
  # with NA to set up for element wise multiplication to get
  # the realized returns
  xts.rank <- as.matrix(xts.rank)
  xts.rank[xts.rank > n] <- NA
  # set the element to 1 for assets ranked <= to rank
  xts.rank[xts.rank <= n] <- 1
  # element wise multiplication of the
  # 1 period return matrix and lagged rank matrix
  mat.ret <- as.matrix(xts.ret) * xts.rank

  # average the rows of the mat.ret to get the
  # return for that period
  vec.ret <- rowMeans(mat.ret, na.rm = TRUE)


  # convert to an xts object
  vec.ret <- xts(x = vec.ret, order.by = index(xts.ret))
  f <- list(mat = mat.ret, ret = vec.ret, rank = xts.rank)
  return(f)
}
test1<-time_series_momentum(xts_return[1:6,],xts_rank[1:6,],n=number[1:6,]
test1<-time_series_momentum(xts_return[7:12,],xts_rank[7:12,],n=number[7:12,]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...