Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.2.2 #28

Merged
merged 6 commits into from
Mar 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading