У меня есть следующий кадр данных:Совокупные Возвращает с NA-й в R
df <- data.frame(Return1=c(NA, NA, .03, .04, .05),
Return2=c(.25, .33, NA, .045, .90),
Return3=c(.04, .073, .08, .04, .01))
Return1 Return2 Return3
1 NA 0.250 0.040
2 NA 0.330 0.073
3 0.03 NA 0.080
4 0.04 0.045 0.040
5 0.05 0.900 0.010
Я хотел бы вычислить кумулятивную доходность, но есть пропущенные значения в dataframe. Я использовал:
cumprod(df+1)-1
Получение в результате
Return1 Return2 Return3
1 NA 0.2500 0.0400000
2 NA 0.6625 0.1159200
3 NA NA 0.2051936
4 NA NA 0.2534013
5 NA NA 0.2659354
Проблема здесь состоит в том, что если есть NA, последующие строки вниз будет иметь в качестве результата НС. Есть ли способ вычислить совокупную прибыль без влияния NA на остальные строки ниже?
Я хотел бы получить в результате:
Return1 Return2 Return3
1 NA 0.2500 0.0400000
2 NA 0.6625 0.1159200
3 0.03 NA 0.2051936
4 0.07120 0.7373 0.2534013
5 0.12476 2.3008 0.2659354
Я знаю, что функции в пакете PerformanceAnalytics называется Return.cumulative, но это будет только получить кумулятивное возвращение целых колонн.
Любые идеи?
Я пытался использовать метод 'na.omit', но этот очень хороший. (+1) –
Как бы передать это на C-код? Некоторые основы в исходном коде [xts для обработки runSum для ведущих NA] (https://github.com/R-Finance/xts/search?utf8=%E2%9C%93&q=firstNonNA). Заинтересовано писать runProd в C. Любое руководство @JoshuaUlrich? –