Как извлечь имена строк с помощью get, а затем найти nrow - PullRequest
0 голосов
/ 29 января 2019

Я пытался воспроизвести код из книги «Количественная торговля с R».В частности, я копировал код для стратегии, используя пакеты Quantstrats / blotter / FinancialInstruments.Все было нормально, когда нужно воспроизвести следующие циклы «for»:

# Market exposure
tmp <- list()
length(tmp) <- length(symbols)
for(i in 1:nrow(dStats)) {
totalDays <- nrow(get(rownames(dStats)[i]))
mktExposure <- dStats$Total.Days[i] / totalDays
tmp[[i]] <- c(rownames(dStats)[i], round(mktExposure, 3))
}

Проблема в следующем:

totalDays <- nrow(get(rownames(dStats)[i]))

, так как он возвращает сообщение об ошибке:

Error in get(rownames(dStats)[i]) : object 'EFA.DailyEqPL' not found

Я разложил код по шагам и понял, что ошибка происходит из-за "get".Итак, я сначала назвал "random" <- rownames (dStats), а затем в цикле for: </p>

totalDays <- nrow(as.data.frame(get("random")[i]))

на этот раз я получаю список результатов, но "totalDays" всегда возвращает "1", так чтоследующая строка "mktExposure" всегда делит его значение для себя

Я схожу с ума, ребята.Как я могу заставить работать "totalDays" ??????????Спасибо

...