Skip to content

Commit

Permalink
Merge pull request #28 from palatej/develop
Browse files Browse the repository at this point in the history
v3.2.2
  • Loading branch information
palatej authored Mar 15, 2024
2 parents 365647a + 2d8e820 commit cd058e5
Show file tree
Hide file tree
Showing 24 changed files with 283 additions and 10 deletions.
17 changes: 17 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,10 @@ export(.enum_extract)
export(.enum_of)
export(.enum_sextract)
export(.enum_sof)
export(.jd2p_calendars)
export(.jd2p_context)
export(.jd2p_variables)
export(.jd2r_calendars)
export(.jd2r_lts)
export(.jd2r_matrix)
export(.jd2r_modellingcontext)
Expand All @@ -73,15 +76,21 @@ export(.jd2r_ts)
export(.jd2r_tscollection)
export(.jd2r_tsdata)
export(.jd2r_ucarima)
export(.jd2r_variables)
export(.jd3_object)
export(.jdomain)
export(.p2jd_calendar)
export(.p2jd_calendars)
export(.p2jd_context)
export(.p2jd_variables)
export(.p2r_arima)
export(.p2r_calendars)
export(.p2r_context)
export(.p2r_datasupplier)
export(.p2r_datasuppliers)
export(.p2r_date)
export(.p2r_iv)
export(.p2r_ivs)
export(.p2r_likelihood)
export(.p2r_matrix)
export(.p2r_metadata)
Expand All @@ -96,6 +105,7 @@ export(.p2r_ramps)
export(.p2r_regarima_rslts)
export(.p2r_sa_decomposition)
export(.p2r_sa_diagnostics)
export(.p2r_sequences)
export(.p2r_span)
export(.p2r_spec_benchmarking)
export(.p2r_spec_sarima)
Expand All @@ -121,6 +131,7 @@ export(.proc_str)
export(.proc_test)
export(.proc_ts)
export(.proc_vector)
export(.r2jd_calendars)
export(.r2jd_make_ts)
export(.r2jd_make_tscollection)
export(.r2jd_matrix)
Expand All @@ -131,18 +142,23 @@ export(.r2jd_ts)
export(.r2jd_tscollection)
export(.r2jd_tsdata)
export(.r2jd_tsdomain)
export(.r2jd_variables)
export(.r2p_calendar)
export(.r2p_calendars)
export(.r2p_context)
export(.r2p_datasupplier)
export(.r2p_datasuppliers)
export(.r2p_date)
export(.r2p_iv)
export(.r2p_ivs)
export(.r2p_lparameters)
export(.r2p_metadata)
export(.r2p_moniker)
export(.r2p_outliers)
export(.r2p_parameter)
export(.r2p_parameters)
export(.r2p_ramps)
export(.r2p_sequences)
export(.r2p_span)
export(.r2p_spec_benchmarking)
export(.r2p_spec_sarima)
Expand Down Expand Up @@ -173,6 +189,7 @@ export(cdf_inverse_gaussian)
export(cdf_t)
export(chained_calendar)
export(clean_extremities)
export(compare_annual_totals)
export(data_to_ts)
export(daysOf)
export(density_chi2)
Expand Down
4 changes: 4 additions & 0 deletions R/jd2r.R
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,10 @@ NULL
#' @rdname jd3_utilities
.jdomain<-function(period, start, end){
if (period == 0)return (.jnull("jdplus/toolkit/base/api/timeseries/TsDomain"))
if (is.null(start))
start<-c(1900,1)
if (is.null(end))
end<-c(2100, 1)
n<-period*(end[1]-start[1])+end[2]-start[2]
jdom<-.jcall("jdplus/toolkit/base/r/timeseries/TsUtility", "Ljdplus/toolkit/base/api/timeseries/TsDomain;", "of"
, as.integer(period), as.integer(start[1]), as.integer(start[2]), as.integer(n))
Expand Down
100 changes: 100 additions & 0 deletions R/modellingcontext.R
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,41 @@ dynamic_ts<-function(moniker, data){
return (l)
}

#' @export
#' @rdname jd3_utilities
.p2jd_variables<-function(p){
bytes<-p$serialize(NULL)
jcal <- .jcall("jdplus/toolkit/base/r/util/Modelling", "Ljdplus/toolkit/base/api/timeseries/regression/TsDataSuppliers;",
"variablesOf",
bytes)
return (jcal)
}

#' @export
#' @rdname jd3_utilities
.jd2p_variables<-function(jd){
bytes<-.jcall("jdplus/toolkit/base/r/util/Modelling", "[B", "toBuffer", jd)
p<-RProtoBuf::read(jd3.TsDataSuppliers, bytes)
return (p)
}



#' @export
#' @rdname jd3_utilities
.jd2r_variables<-function(jcals){
p<-.jd2p_variables(jcals)
return (.p2r_datasuppliers(p))
}

#' @export
#' @rdname jd3_utilities
.r2jd_variables<-function(r){
p<-.r2p_datasuppliers(r)
return (.p2jd_variables(p))
}


#' Create context
#' @description
#' Function allowing to include calendars and external regressors in a format that makes them usable
Expand Down Expand Up @@ -383,3 +418,68 @@ modelling_context<-function(calendars=NULL, variables=NULL){
p<-.r2p_context(r)
return (.p2jd_context(p))
}

#' @export
#' @rdname jd3_utilities
.p2r_calendars<-function(p){
n<-length(p$calendars)
lcal <- NULL
if (n > 0){
lcal<-lapply(1:n, function(i){return(.p2r_calendardef(p$calendars[[i]]$value))})
ns<-sapply(1:n, function(i){return(p$calendars[[i]]$key)})
names(lcal)<-ns
}
return (lcal)
}

#' @export
#' @rdname jd3_utilities
.r2p_calendars<-function(r){
p<-jd3.Calendars$new()
ns<-names(r)
n<-length(ns)
# To take into account empty calendars
length_cal <- sapply(r, length)

p$calendars<-lapply((1:n)[length_cal!=0], function(i){
entry<-jd3.Calendars$CalendarsEntry$new()
entry$key<-ns[i]
entry$value<-.r2p_calendardef(r[[i]])
return(entry)
})
return (p)
}

#' @export
#' @rdname jd3_utilities
.p2jd_calendars<-function(p){
bytes<-p$serialize(NULL)
jcal <- .jcall("jdplus/toolkit/base/r/util/Modelling", "Ljdplus/toolkit/base/api/timeseries/calendars/CalendarManager;",
"calendarsOf",
bytes)
return (jcal)
}

#' @export
#' @rdname jd3_utilities
.jd2p_calendars<-function(jd){
bytes<-.jcall("jdplus/toolkit/base/r/util/Modelling", "[B", "toBuffer", jd)
p<-RProtoBuf::read(jd3.Calendars, bytes)
return (p)
}


#' @export
#' @rdname jd3_utilities
.jd2r_calendars<-function(jcals){
p<-.jd2p_calendars(jcals)
return (.p2r_calendars(p))
}

#' @export
#' @rdname jd3_utilities
.r2jd_calendars<-function(r){
p<-.r2p_calendars(r)
return (.p2jd_calendars(p))
}

71 changes: 69 additions & 2 deletions R/protobuf.R
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,74 @@ NULL
return (lapply(r, function(z){.r2p_outlier(z)}))
}

.p2r_sequence<-function(p){
return (list(
start=.p2r_date(p$start),
end=.p2r_date(p$end)
))
}

.r2p_sequence<-function(r){
p<-modelling.InterventionVariable$Sequence$new()
p$start<-.r2p_date(r$start)
p$end<-.r2p_date(r$end)
return (p)
}

#' @export
#' @rdname jd3_utilities
.p2r_sequences<-function(p){
if (length(p) == 0){return (NULL)}
return (lapply(p, function(z){.p2r_sequence(z)}))
}

#' @export
#' @rdname jd3_utilities
.r2p_sequences<-function(r){
if (length(r) == 0){return (list())}
return (lapply(r, function(z){.r2p_sequence(z)}))
}

#' @export
#' @rdname jd3_utilities
.p2r_iv<-function(p){
return (list(
name=p$name,
sequences=.p2r_sequences(p$sequences),
delta=p$delta,
seasonaldelta=p$seasonal_delta,
coef=.p2r_parameter(p$coefficient),
regeffect=.regeffect(p$metadata)
))
}

#' @export
#' @rdname jd3_utilities
.r2p_iv<-function(r){
p<-modelling.InterventionVariable$new()
p$name<-r$name
p$sequences<-.r2p_sequences(r$sequences)
p$coefficient<-.r2p_parameter(r$coef)
p$metadata<-modelling.InterventionVariable.MetadataEntry$new(key = "regeffect", value=r$regeffect)
return (p)
}

#' @export
#' @rdname jd3_utilities
.p2r_ivs<-function(p){
if (length(p) == 0){return (NULL)}
return (lapply(p, function(z){.p2r_iv(z)}))
}

#' @export
#' @rdname jd3_utilities
.r2p_ivs<-function(r){
if (length(r) == 0){return (list())}
return (lapply(r, function(z){.r2p_iv(z)}))
}




.p2r_ramp<-function(p){
return (list(
Expand All @@ -326,6 +394,7 @@ NULL
))
}


.r2p_ramp<-function(r){
p<-modelling.Ramp$new()
p$name<-r$name
Expand All @@ -346,7 +415,6 @@ NULL
#' @rdname jd3_utilities
.r2p_ramps<-function(r){
if (length(r) == 0){return (list())}
l<-list()
return (lapply(r, function(z){.r2p_ramp(z)}))
}

Expand Down Expand Up @@ -388,7 +456,6 @@ NULL
#' @rdname jd3_utilities
.r2p_uservars<-function(r){
if (length(r) == 0){return (list())}
l<-list()
return (lapply(r, function(z){.r2p_uservar(z)}))
}
#' @export
Expand Down
14 changes: 14 additions & 0 deletions R/timeseries.R
Original file line number Diff line number Diff line change
Expand Up @@ -303,5 +303,19 @@ tsdata_of<-function(values, dates){
"of", as.numeric(values), as.character(dates))

return (.jd2r_tsdata(jtsdata))
}

#' Compare the annual totals of two series (usually the raw series and the seasonally adjusted series)
#'
#' @param raw Raw series
#' @param sa Seasonally adjusted series
#'
#' @return The largest annual difference (in percentage of the average level of the seasonally adjusted series)
#' @export
#'
#' @examples
compare_annual_totals<-function(raw, sa){
jsa<-.r2jd_tsdata(sa)
jraw<-.r2jd_tsdata(raw)
return (.jcall("jdplus/sa/base/r/SaUtility", "D", "compareAnnualTotals", jraw, jsa))
}
Binary file removed inst/java/jdplus-sa-base-api-3.2.2-SNAPSHOT.jar
Binary file not shown.
Binary file added inst/java/jdplus-sa-base-api-3.2.2.jar
Binary file not shown.
Binary file removed inst/java/jdplus-sa-base-core-3.2.2-SNAPSHOT.jar
Binary file not shown.
Binary file added inst/java/jdplus-sa-base-core-3.2.2.jar
Binary file not shown.
Binary file removed inst/java/jdplus-sa-base-protobuf-3.2.2-SNAPSHOT.jar
Binary file not shown.
Binary file added inst/java/jdplus-sa-base-protobuf-3.2.2.jar
Binary file not shown.
Binary file removed inst/java/jdplus-sa-base-r-3.2.2-SNAPSHOT.jar
Binary file not shown.
Binary file added inst/java/jdplus-sa-base-r-3.2.2.jar
Binary file not shown.
Binary file not shown.
Binary file added inst/java/jdplus-toolkit-base-api-3.2.2.jar
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added inst/java/jdplus-toolkit-base-protobuf-3.2.2.jar
Binary file not shown.
Binary file removed inst/java/jdplus-toolkit-base-r-3.2.2-SNAPSHOT.jar
Binary file not shown.
Binary file added inst/java/jdplus-toolkit-base-r-3.2.2.jar
Binary file not shown.
Binary file not shown.
20 changes: 12 additions & 8 deletions inst/proto/toolkit.proto
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ message Date {
// significant.
int32 day = 3;
}


message TimeSelector{
SelectionType type = 1;
Expand Down Expand Up @@ -60,7 +60,7 @@ message ParametersEstimation{
repeated double value = 1;
repeated double score = 2;
Matrix covariance = 3;
string description = 4;
string description = 4;
}

message TsPeriod{
Expand Down Expand Up @@ -112,7 +112,7 @@ message OneWayAnova{
double SSR = 3;
// N-nfactors
int32 dfr = 4;

StatisticalTest test = 5;
}

Expand Down Expand Up @@ -170,13 +170,13 @@ message NIIDTests{
StatisticalTest box_pierce = 6;
StatisticalTest seasonal_ljung_box = 7;
StatisticalTest seasonal_box_pierce = 8;

/* Randomness */
StatisticalTest runs_number = 9;
StatisticalTest runs_length = 10;
StatisticalTest up_down_runs_number = 11;
StatisticalTest up_down_runs_length = 12;

/* Linearity */
StatisticalTest ljung_box_on_squares = 13;
StatisticalTest box_pierce_on_squares = 14;
Expand Down Expand Up @@ -212,7 +212,7 @@ enum CalendarEvent{
*/
HOLIDAY_EASTER = 5;
/**
* Julian Easter.
* Julian Easter.
*/
HOLIDAY_JULIANEASTER = 6;
/**
Expand Down Expand Up @@ -306,7 +306,7 @@ message PrespecifiedHoliday{
message FixedWeekDay{
int32 month = 1;
/* Corresponds to the first, second...)*/
int32 position = 2;
int32 position = 2;
/* ISO-8601 standard, from 1 (Monday) to 7 (Sunday) */
int32 weekday = 3;
double weight = 4;
Expand Down Expand Up @@ -382,9 +382,13 @@ message TsDataSuppliers{
repeated Item items = 1;
}

message Calendars{
map<string, CalendarDefinition> calendars = 1;
}

message ModellingContext{
map<string, CalendarDefinition> calendars = 1;
map<string, TsDataSuppliers> variables = 2;
map<string, TsDataSuppliers> variables = 2;
}

enum InformationType {
Expand Down
Loading

0 comments on commit cd058e5

Please sign in to comment.