Заполните пустую матрицу данными различной длины - PullRequest
0 голосов
/ 10 июня 2018

Привет, я написал код, который должен получать финансовые данные от Фреда.Предполагается получить все данные, а затем поместить данные в пустую матрицу.

Это кажется немного сложнее, чем я думал.Например:

tickers = c("AAA", "BAA", "TB3MS")

###HÄMTAR DATA###
library(quantmod)
var = noquote(tickers)
getSymbols(tickers, src = "FRED")

#kontrollera längderna och skapa en vector med längderna
vector = c()
for (v in 1:length(var)) {
    vector[v] = length(get(var[v]))
}
minsta = min(vector)
längsta = max(vector)

emptym = matrix( nrow = längsta, ncol = length(tickers)+1)

for (i in 1:length(var)) {
    emptym[,i] = get(var[i])
}

, но поскольку TB3MS короче, чем два других набора, я получаю ошибку.

"number of items to replace is not a multiple of replacement length"

Я пытаюсь понять, как обойти это?Сделать цикл for внутри цикла for?

Я также пробовал этот:

cbind.fill <- function(...){
    nm = list(...) 
    nm = lapply(nm, as.matrix)
    n = max(sapply(nm, nrow)) 
    do.call(cbind, lapply(nm, function (x) 
        rbind(x, matrix(, n-nrow(x), ncol(x))))) 
}

Но этот дает NA в конце, мне нужно NA с самого начала, а затем заполнитьэто с данными.

...