Skip to content

Commit

Permalink
Merge pull request #41 from lionel-/dplyr-1.1.0
Browse files Browse the repository at this point in the history
Compatibility with dplyr 1.1.0. Thanks @lionel- looks great!
  • Loading branch information
shackett authored Jan 17, 2023
2 parents 49c3f8b + 17287fb commit ed3c2f8
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 9 deletions.
32 changes: 26 additions & 6 deletions R/data_classes.R
Original file line number Diff line number Diff line change
Expand Up @@ -586,10 +586,18 @@ triple_to_tidy <- function(triple_omic) {
feature_pk <- triple_omic$design$feature_pk
sample_pk <- triple_omic$design$sample_pk

samples_measurements <- triple_omic$samples %>%
dplyr::inner_join(
triple_omic$measurements,
by = sample_pk,
multiple = "all"
)

tidy_output <- triple_omic$features %>%
dplyr::inner_join((triple_omic$samples %>%
dplyr::inner_join(triple_omic$measurements, by = sample_pk)),
by = feature_pk
dplyr::inner_join(
samples_measurements,
by = feature_pk,
multiple = "all"
)

output <- list()
Expand Down Expand Up @@ -628,14 +636,26 @@ tidy_to_triple <- function(tidy_omic) {
tidy_omic$design$samples$type == "sample_primary_key"
]

# `distinct()` used to return variables in the order existing in the
# data. Since dplyr 1.1.0, itnow returns variables in the order they
# were supplied. To prevent a behaviour change, we now supply the
# variables in data order by subsetting the original variables first.
vars <- names(tidy_omic$data)
features_vars <- intersect(vars, tidy_omic$design$features$variable)
samples_vars <- intersect(vars, tidy_omic$design$samples$variable)

# This has always returned the variables in supplied order because
# that's how `select()` orders the output
measurements_vars <- tidy_omic$design$measurements$variable

feature_df <- tidy_omic$data %>%
dplyr::distinct(!!!rlang::syms(tidy_omic$design$features$variable))
dplyr::distinct(dplyr::across(dplyr::all_of(features_vars)))

sample_df <- tidy_omic$data %>%
dplyr::distinct(!!!rlang::syms(tidy_omic$design$samples$variable))
dplyr::distinct(dplyr::across(dplyr::all_of(samples_vars)))

measurement_df <- tidy_omic$data %>%
dplyr::select(!!!rlang::syms(tidy_omic$design$measurements$variable))
dplyr::select(dplyr::all_of(measurements_vars))

output <- list(
features = feature_df,
Expand Down
4 changes: 1 addition & 3 deletions R/dim_reduction.R
Original file line number Diff line number Diff line change
Expand Up @@ -331,9 +331,7 @@ find_triple_omic_missing_values <- function (triple_omic, value_var) {

observed_measurements <- triple_omic$measurements %>%
# drop missing values
dplyr::filter_at(dplyr::all_of(value_var), function(x) {
!is.na(x)
})
dplyr::filter_at(value_var, function(x) !is.na(x))

missing_values <- all_expected_obs %>%
dplyr::anti_join(
Expand Down

0 comments on commit ed3c2f8

Please sign in to comment.