Я начал тиражировать фактор стоимости, используемый Фамой и Френчем в r для построения стратегии портфеля для моей последней диссертации.
У меня есть набор месячных рыночных пределов от S & P 500 за эти годы. Я создал al oop, чтобы определить, является ли переменная (mkt cap) определенного наблюдения в определенную дату выше или ниже определенного порога, вычисленного в поперечном сечении в одно и то же время (для всех наблюдений переменной mkt cap в время т). Чтобы достичь этого, я подумал, что подходящей техникой для l oop. Таким образом, для каждой даты я вычисляю порог и проверяю критерии. К сожалению, я не могу сохранить логическое в течение l oop. Когда я печатаю результаты, я вижу, что я хочу сохранить, но когда я пытаюсь сохранить, я получаю только результаты, относящиеся к последнему шагу l oop.
for(d in dates$date){
month <- data_tbk %>% filter(date==d)
up <- quantile(month$mktcap, 0.8, na.rm=TRUE)
low <- quantile(month$mktcap, 0.2, na.rm=TRUE)
data_tbk %>% filter(date==d) %>%
mutate(ptf=ifelse(mktcap>=up,1,ifelse(mktcap<=low,0,NA))) %>%
print
}
Другой способ, которым я пытался следовать, заключается в следующем, но я получил еще меньше:
data_tbk$ptf <- NA
for(d in dates$date){
month <- data_tbk %>% filter(date==d)
up <- quantile(month$mktcap, 0.8, na.rm=TRUE)
low <- quantile(month$mktcap, 0.2, na.rm=TRUE)
data_tbk %>% filter(date==d) %>% filter(mktcap>=up) %>% ptf=1
filter(data_tbk, date==d) %>% filter(mktcap<=low) %>% ptf=0
}
Как мне изменить коды, чтобы получить столбец, содержащий логические 1 или 0 в соответствии с по критериям?
![data_pdk](https://i.stack.imgur.com/qm8on.png)