Я пытаюсь установить значение по умолчанию для первой строки в фрейме данных равным 1 с помощью функции dplyr
pipe.
Как одно из требований для динамического соединения значений в данных с функцией даты. Я буду признателен, если кто-нибудь может помочь мне понять, как я могу установить значение по умолчанию для всех первых строк в приведенном ниже коде. Я уже создал заполнитель, в котором ожидаемое значение по умолчанию.
df2 <- df %>% mutate(MonthDate = as.Date(df$StartMonth,"%m/%d/%Y")) %>%
filter(MonthDate > as.Date("2005-09-30"))%>%
# Place holder where I want to set first row of the column to default value of 1#
mutate(SAABenchmark_VAMI = cumprod(exp(SAABenchmarkstdev)),
SAABetaOnly_VAMI = cumprod(exp(SAABetaOnly_stdev)),
HFbenchmark_VAMI = cumprod(exp(HFbenchmarkReturns)),
ZAAMHF_VAMI = cumprod(exp(ZAAMHFReturns)))%>%
mutate(SAABenchmark_logVAMI =log(SAABenchmark_VAMI),
SAABetaOnly_logVAMI=log (SAABetaOnly_VAMI),
Hfbenchmark_logVAMI=log(HFbenchmark_VAMI),
ZAAMHF_logVAMI=log(ZAAMHF_VAMI))%>%
select(MonthDate,SAABenchmark_VAMI:ZAAMHF_logVAMI)%>%
melt(., id.vars = "MonthDate")
Пожалуйста, найдите мой фрейм данных:
structure(list(StartMonth = structure(c(2L, 9L, 11L, 13L, 15L,
17L, 19L, 21L, 23L, 4L, 6L, 8L, 3L, 10L, 12L, 14L, 16L, 18L,
20L, 22L, 24L, 5L, 7L, 1L), .Label = c("", "1/31/2017", "1/31/2018",
"10/31/2017", "10/31/2018", "11/30/2017", "11/30/2018", "12/31/2017",
"2/28/2017", "2/28/2018", "3/31/2017", "3/31/2018", "4/30/2017",
"4/30/2018", "5/31/2017", "5/31/2018", "6/30/2017", "6/30/2018",
"7/31/2017", "7/31/2018", "8/31/2017", "8/31/2018", "9/30/2017",
"9/30/2018"), class = "factor"), SAABenchmarkstdev = c(47L, 48L,
49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L, 61L,
62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, NA), SAABetaOnly_stdev = c(26L,
27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L,
40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, NA), HFbenchmarkReturns = c(34L,
35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L,
48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, NA), ZAAMHFReturns = c(47L,
48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L,
61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, NA)), class = "data.frame", row.names = c(NA,
-24L))