Я работаю с набором плоских данных («FSIflat»), который имеет страну (символ), индикатор (символ), код индикатора (символ), период времени (символ: например, 2010Q3, 2010M12, 2010) и значение (num) и тип времени («Ежеквартально», «Ежемесячно» или «Ежегодно»), и цель состоит в том, чтобы создавать таблицы в формате PDF, когда пользователи называют страну.Я пытался преобразовать кусок в функцию, но не смог.Оригинальный блок работает нормально, и он производит PDF.Но функция дала мне Ошибка в разборе (Text = x, srcfile = src) :: 3:16: неожиданный '=' .
Я новичок в R и все.Я потратил на это дни и не мог понять, что пошло не так.Было бы здорово, если бы кто-то мог помочь.Большое спасибо!
Кусок
newdf<-FSIflat%>%
filter(Country.Name == "Australia", timetype == "Annual")%>%
select(1:6,-2,-3)
All.Periods <- c(unique(newdf$Time.Period))
All.Periods <- tail(sort(All.Periods),10)
newdf<-newdf%>%
filter(Time.Period %in% c(All.Periods))%>%
spread(key=Time.Period, value=Value)%>%
inner_join(indicatortable, by=("Indicator.Code"="Indicator.Code"))%>%
arrange(Set, Level)%>%
select(Set, Indicator, c(All.Periods))
kable(newdf, "latex", longtable = T, booktabs = T, align = c("c","l",rep("r",10)), caption="c(ftitle)", digits = 1)%>%
column_spec(1, width = "1em")%>%
column_spec(2,width = "16em")%>%
collapse_rows(columns = 1:2, latex_hline = "major", valign = "top", row_group_label_position = 'stack')%>%
kable_styling(latex_options = c("striped", "repeat_header"), full_width = T)
Функция
<<LoadCountryx>>=
LoadCountryx<-function(
fcountry, fdata, ffrequency, ftitle = paste("Latest ratios available for ",
fcountry)
){if(ffrequency="Y"){
newdf<-fdata%>%
filter(Country.Name == fcountry, timetype == "Annual")%>%
select(1:6,-2,-3)
All.Periods <- c(unique(fdata$Time.Period))
All.Periods <- tail(sort(All.Periods),10)
newdf<-newdf%>%
filter(Time.Period %in% c(All.Periods))%>%
spread(key=Time.Period, value=Value)%>%
inner_join(indicatortable, by=("Indicator.Code" = "Indicator.Code"))%>%
arrange(Set, Level)%>%
select(Set, Indicator, c(All.Periods))
}else if(ffrequency="Q"){
newdf<-filter(fdata,Country.Name == fcountry, timetype == "Quarterly")%>%
select(1:6,-2,-3)
All.Periods <- c(unique(fdata$Time.Period))
All.Periods <- tail(sort(All.Periods),10)
newdf<-newdf%>%
filter(Time.Period %in% c(All.Periods))%>%
spread(key=Time.Period, value=Value)%>%
inner_join(indicatortable, by=("Indicator.Code" = "Indicator.Code"))%>%
arrange(Set, Level)%>%
select(Set, Indicator, c(All.Periods))
}else if(ffrequency="M"){
newdf<-filter(fdata,Country.Name == fcountry, timetype == "Monthly")%>%
select(1:6,-2,-3)
All.Periods <- c(unique(fdata$Time.Period))
All.Periods <- tail(sort(All.Periods),10)
newdf<-newdf%>%
filter(Time.Period %in% c(All.Periods))%>%
spread(key=Time.Period, value=Value)%>%
inner_join(indicatortable, by=("Indicator.Code" = "Indicator.Code"))%>%
arrange(Set, Level)%>%
select(Set, Indicator, c(All.Periods))
}
kable(newdf, "latex", longtable = T, booktabs = T, align = c("c","l",rep("r",10)), caption=c(ftitle), digits = 1)%>%
column_spec(1, width = "1em")%>%
column_spec(2,width = "16em")%>%
collapse_rows(columns = 1:2, latex_hline = "major", valign = "top", row_group_label_position = 'stack')%>%
kable_styling(latex_options = c("striped", "repeat_header"), full_width = T)
}
@