Skip to content

Commit 9568aa1

Browse files
Merge pull request #265 from hendersontrent/tsfeatures-parallel
fixed dep
2 parents f271d1d + 6b68333 commit 9568aa1

File tree

6 files changed

+59
-58
lines changed

6 files changed

+59
-58
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Package: theft
22
Type: Package
33
Title: Tools for Handling Extraction of Features from Time Series
44
Version: 0.8.1
5-
Date: 2025-07-09
5+
Date: 2025-07-10
66
Authors@R: c(
77
person("Trent", "Henderson", email = "then6675@uni.sydney.edu.au", role = c("cre", "aut")),
88
person("Annie", "Bryant", role = "ctb")

NAMESPACE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import(dplyr)
1111
import(feasts)
1212
importFrom(R.matlab,readMat)
1313
importFrom(Rcatch22,catch22_all)
14+
importFrom(dplyr,"%>%")
1415
importFrom(dplyr,across)
1516
importFrom(dplyr,all_of)
1617
importFrom(dplyr,arrange)

R/calculate_features.R

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

77
calc_catch22 <- function(data, catch24){
88

9-
outData <- data |>
9+
outData <- data %>%
1010
dplyr::reframe(Rcatch22::catch22_all(!!dplyr::sym(colnames(data)[!colnames(data) %in% append(tsibble::key_vars(data), tsibble::index_var(data))]),
11-
catch24 = catch24), .by = tsibble::key_vars(data)) |>
11+
catch24 = catch24), .by = tsibble::key_vars(data)) %>%
1212
dplyr::mutate(feature_set = "catch22")
1313

1414
return(outData)
@@ -20,10 +20,10 @@ calc_catch22 <- function(data, catch24){
2020

2121
calc_feasts <- function(data){
2222

23-
outData <- data |>
23+
outData <- data %>%
2424
fabletools::features(!!dplyr::sym(colnames(data)[!colnames(data) %in% append(tsibble::key_vars(data), tsibble::index_var(data))]),
25-
features = fabletools::feature_set(pkgs = "feasts")) |>
26-
tidyr::gather("names", "values", -dplyr::all_of(tsibble::key_vars(data))) |>
25+
features = fabletools::feature_set(pkgs = "feasts")) %>%
26+
tidyr::gather("names", "values", -dplyr::all_of(tsibble::key_vars(data))) %>%
2727
dplyr::mutate(feature_set = "feasts")
2828

2929
return(outData)
@@ -41,9 +41,9 @@ calc_tsfeatures <- function(data, use_compengine){
4141
tsf_list <- split(data[, c(var2)], data[, var3])
4242

4343
if(length(tsibble::key_vars(data)) > 1){
44-
lookup <- data |>
45-
as.data.frame() |>
46-
dplyr::select(dplyr::all_of(tsibble::key_vars(data))) |>
44+
lookup <- data %>%
45+
as.data.frame() %>%
46+
dplyr::select(dplyr::all_of(tsibble::key_vars(data))) %>%
4747
dplyr::distinct()
4848
}
4949

@@ -75,12 +75,12 @@ calc_tsfeatures <- function(data, use_compengine){
7575
outData <- tsfeatures::tsfeatures(outData, features = featureList)
7676
}
7777

78-
outData <- cbind(the_names, outData) |>
79-
tidyr::pivot_longer(!dplyr::all_of(var3), names_to = "names", values_to = "values") |>
78+
outData <- cbind(the_names, outData) %>%
79+
tidyr::pivot_longer(!dplyr::all_of(var3), names_to = "names", values_to = "values") %>%
8080
dplyr::mutate(feature_set = "tsfeatures")
8181

8282
if(length(tsibble::key_vars(data)) > 1){
83-
outData <- outData |>
83+
outData <- outData %>%
8484
dplyr::inner_join(lookup)
8585
}
8686

@@ -93,33 +93,33 @@ calc_tsfeatures <- function(data, use_compengine){
9393

9494
calc_tsfresh <- function(data, cleanup){
9595

96-
lookup <- data |>
97-
as.data.frame() |>
98-
dplyr::select(dplyr::all_of(tsibble::key_vars(data))) |>
96+
lookup <- data %>%
97+
as.data.frame() %>%
98+
dplyr::select(dplyr::all_of(tsibble::key_vars(data))) %>%
9999
dplyr::distinct()
100100

101101
# Load Python function
102102

103103
tsfresh_calculator <- function(){}
104104
reticulate::source_python(system.file("python", "tsfresh_calculator.py", package = "theft")) # Ships with package
105105

106-
temp <- data |>
107-
as.data.frame() |>
108-
dplyr::group_by(!!dplyr::sym(tsibble::key_vars(data)[1])) |>
109-
dplyr::arrange(!!dplyr::sym(tsibble::index_var(data))) |>
110-
dplyr::mutate(timepoint = as.numeric(dplyr::row_number())) |>
111-
dplyr::ungroup() |>
106+
temp <- data %>%
107+
as.data.frame() %>%
108+
dplyr::group_by(!!dplyr::sym(tsibble::key_vars(data)[1])) %>%
109+
dplyr::arrange(!!dplyr::sym(tsibble::index_var(data))) %>%
110+
dplyr::mutate(timepoint = as.numeric(dplyr::row_number())) %>%
111+
dplyr::ungroup() %>%
112112
dplyr::select(!!dplyr::sym(tsibble::key_vars(data)[1]), !!dplyr::sym(tsibble::index_var(data)),
113113
!!dplyr::sym(colnames(data)[!colnames(data) %in% append(tsibble::key_vars(data), tsibble::index_var(data))]))
114114

115-
ids <- temp |>
116-
dplyr::select(!!dplyr::sym(tsibble::key_vars(data)[1])) |>
115+
ids <- temp %>%
116+
dplyr::select(!!dplyr::sym(tsibble::key_vars(data)[1])) %>%
117117
dplyr::distinct()
118118

119-
outData <- tsfresh_calculator(timeseries = temp, column_id = tsibble::key_vars(data)[1], column_sort = "timepoint", cleanup = cleanup) |>
120-
cbind(ids) |>
121-
tidyr::gather("names", "values", -tsibble::key_vars(data)[1]) |>
122-
dplyr::inner_join(lookup) |>
119+
outData <- tsfresh_calculator(timeseries = temp, column_id = tsibble::key_vars(data)[1], column_sort = "timepoint", cleanup = cleanup) %>%
120+
cbind(ids) %>%
121+
tidyr::gather("names", "values", -tsibble::key_vars(data)[1]) %>%
122+
dplyr::inner_join(lookup) %>%
123123
dplyr::mutate(feature_set = "tsfresh")
124124

125125
return(outData)
@@ -136,10 +136,10 @@ calc_tsfel <- function(data){
136136
tsfel_calculator <- function(){}
137137
reticulate::source_python(system.file("python", "tsfel_calculator.py", package = "theft")) # Ships with package
138138

139-
outData <- data |>
139+
outData <- data %>%
140140
dplyr::reframe(tsfel_calculator(!!dplyr::sym(colnames(data)[!colnames(data) %in% append(tsibble::key_vars(data), tsibble::index_var(data))])),
141-
.by = dplyr::all_of(tsibble::key_vars(data))) |>
142-
tidyr::gather("names", "values", -tsibble::key_vars(data)) |>
141+
.by = dplyr::all_of(tsibble::key_vars(data))) %>%
142+
tidyr::gather("names", "values", -tsibble::key_vars(data)) %>%
143143
dplyr::mutate(feature_set = "TSFEL")
144144

145145
return(outData)
@@ -158,27 +158,27 @@ calc_kats <- function(data){
158158

159159
# Convert numeric time index to datetime as Kats requires it
160160

161-
unique_times <- data |>
162-
as.data.frame() |>
163-
dplyr::select(!!dplyr::sym(tsibble::index_var(data))) |>
164-
dplyr::distinct() |>
161+
unique_times <- data %>%
162+
as.data.frame() %>%
163+
dplyr::select(!!dplyr::sym(tsibble::index_var(data))) %>%
164+
dplyr::distinct() %>%
165165
dplyr::pull(!!dplyr::sym(tsibble::index_var(data)))
166166

167-
datetimes <- data.frame(timepoint = unique_times) |>
167+
datetimes <- data.frame(timepoint = unique_times) %>%
168168
dplyr::mutate(time = seq(as.Date("1800-01-01"), by = "day", length.out = length(unique_times)))
169169

170170
colnames(datetimes) <- c(tsibble::index_var(data), "time")
171171

172172
# Join in datetimes and run computations
173173

174-
outData <- data |>
175-
dplyr::inner_join(datetimes) |>
176-
dplyr::select(-!!dplyr::sym(tsibble::index_var(data))) |>
174+
outData <- data %>%
175+
dplyr::inner_join(datetimes) %>%
176+
dplyr::select(-!!dplyr::sym(tsibble::index_var(data))) %>%
177177
dplyr::reframe(results = list(kats_calculator(timepoints = .data$time,
178178
values = !!dplyr::sym(colnames(data)[!colnames(data) %in% append(tsibble::key_vars(data), tsibble::index_var(data))]))),
179-
.by = dplyr::all_of(tsibble::key_vars(data))) |>
180-
tidyr::unnest_wider(!!dplyr::sym("results")) |>
181-
tidyr::gather("names", "values", -tsibble::key_vars(data)) |>
179+
.by = dplyr::all_of(tsibble::key_vars(data))) %>%
180+
tidyr::unnest_wider(!!dplyr::sym("results")) %>%
181+
tidyr::gather("names", "values", -tsibble::key_vars(data)) %>%
182182
dplyr::mutate(feature_set = "Kats")
183183

184184
return(outData)
@@ -190,7 +190,7 @@ calc_kats <- function(data){
190190

191191
calc_user <- function(data, features){
192192

193-
outData <- data |>
193+
outData <- data %>%
194194
dplyr::reframe(dplyr::across(dplyr::all_of(colnames(data)[!colnames(data) %in% append(tsibble::key_vars(data), tsibble::index_var(data))]),
195195
.fns = features),
196196
.by = tsibble::key_vars(data))
@@ -200,8 +200,8 @@ calc_user <- function(data, features){
200200
col_count <- ncol(outData)
201201
cols <- key_var_count:col_count
202202

203-
outData <- outData |>
204-
tidyr::pivot_longer(cols = dplyr::all_of(cols), names_to = "names", values_to = "values") |>
203+
outData <- outData %>%
204+
tidyr::pivot_longer(cols = dplyr::all_of(cols), names_to = "names", values_to = "values") %>%
205205
dplyr::mutate(feature_set = "User")
206206

207207
return(outData)
@@ -211,7 +211,7 @@ calc_user <- function(data, features){
211211

212212
#' Compute features on an input time series dataset
213213
#'
214-
#' @importFrom dplyr group_by filter ungroup bind_rows across all_of select rename
214+
#' @importFrom dplyr group_by filter ungroup bind_rows across all_of select rename %>%
215215
#' @importFrom tsibble key_vars index_var
216216
#' @param data \code{tbl_ts} containing the time series data
217217
#' @param feature_set \code{character} or \code{vector} of \code{character} denoting the set of time-series features to calculate. Can be one of \code{"catch22"}, \code{"feasts"}, \code{"tsfeatures"}, \code{"tsfresh"}, \code{"tsfel"}, or \code{"kats"}
@@ -248,15 +248,15 @@ calculate_features <- function(data, feature_set = c("catch22", "feasts", "tsfea
248248

249249
#--------- Filter out time series with NAs --------
250250

251-
ids_pre <- data |>
252-
as.data.frame() |>
253-
dplyr::select(dplyr::all_of(tsibble::key_vars(data)[1])) |>
254-
dplyr::distinct() |>
251+
ids_pre <- data %>%
252+
as.data.frame() %>%
253+
dplyr::select(dplyr::all_of(tsibble::key_vars(data)[1])) %>%
254+
dplyr::distinct() %>%
255255
nrow()
256256

257-
data_re <- data |>
258-
dplyr::group_by(dplyr::across(dplyr::all_of(tsibble::key_vars(data)))) |>
259-
dplyr::filter(!any(is.na(colnames(data)[!colnames(data) %in% append(tsibble::key_vars(data), tsibble::index_var(data))]))) |>
257+
data_re <- data %>%
258+
dplyr::group_by(dplyr::across(dplyr::all_of(tsibble::key_vars(data)))) %>%
259+
dplyr::filter(!any(is.na(colnames(data)[!colnames(data) %in% append(tsibble::key_vars(data), tsibble::index_var(data))]))) %>%
260260
dplyr::ungroup()
261261

262262
lookup2 <- unique(data_re[tsibble::key_vars(data_re)])
@@ -366,13 +366,13 @@ calculate_features <- function(data, feature_set = c("catch22", "feasts", "tsfea
366366
keep_cols <- c("id", "group", "feature_set", "names", "values")
367367

368368
if(length(tsibble::key_vars(data)) > 1){
369-
tmp_all_features <- tmp_all_features |>
369+
tmp_all_features <- tmp_all_features %>%
370370
dplyr::rename(id = dplyr::all_of(tsibble::key_vars(data)[1]),
371-
group = dplyr::all_of(tsibble::key_vars(data)[2])) |>
371+
group = dplyr::all_of(tsibble::key_vars(data)[2])) %>%
372372
dplyr::select(dplyr::all_of(keep_cols))
373373
} else{
374374
if(tsibble::key_vars(data)[1] != "id"){
375-
tmp_all_features <- tmp_all_features |>
375+
tmp_all_features <- tmp_all_features %>%
376376
dplyr::rename(id = dplyr::all_of(tsibble::key_vars(data)[1]))
377377
}
378378
}

R/theft.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#' @importFrom utils packageVersion
99
#' @importFrom rlang .data
1010
#' @importFrom stats ts
11-
#' @importFrom dplyr group_by filter ungroup bind_rows across all_of mutate arrange reframe mutate select distinct row_number left_join everything rename inner_join sym
11+
#' @importFrom dplyr %>% group_by filter ungroup bind_rows across all_of mutate arrange reframe mutate select distinct row_number left_join everything rename inner_join sym
1212
#' @importFrom tsibble key_vars index_var as_tsibble
1313
#' @importFrom fabletools features feature_set
1414
#' @importFrom Rcatch22 catch22_all

docs/articles/theft.html

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/pkgdown.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ pkgdown: 2.1.1
33
pkgdown_sha: ~
44
articles:
55
theft: theft.html
6-
last_built: 2025-07-08T05:25Z
6+
last_built: 2025-07-10T02:27Z
77
urls:
88
reference: https://hendersontrent.github.io/theft/reference
99
article: https://hendersontrent.github.io/theft/articles

0 commit comments

Comments
 (0)