• Housekeeping improvements

  • Fixes an error in exportMeasuredTraits() that occurred when no measured trait variables (ending in "_a", "_b", or "_c") were present in the dataset. The function now returns a valid empty CM_df object instead of failing during the binding step.

NEW FEATURES

These functions provide direct access to commonly used data structures in ClimMob projects, improving workflow efficiency for analysis and reporting.

IMPROVEMENTS

  • Internal codebase updated to support new export functions and maintain consistency across all data-handling utilities.
  • Minor enhancements in internal helper functions for data parsing and formatting (no behavioural changes).

BUG FIXES

  • Fixes an issue in handling column names with the overall characteristic.

CHANGES IN BEHAVIOUR

  • The as.data.frame.CM_list() method now defaults to pivot.wider = TRUE, returning a wide-format data frame.
  • The as.data.frame.CM_list() method has a validation line to only coerce to data.frame objects with more than 1 data point.

IMPROVEMENTS

  • Re-factored internal code structure for improved readability and performance. Introducing modular helper functions to support the as.data.frame.CM_list() method, improving code clarity and reusability
    • .replace_multichoice_codes()
    • .handle_geolocation_columns()
    • .replace_rankings()
    • .decode_assessments()
    • .merge_package_info()
    • .clean_column_names()
    • .drop_odk_system_fields()
    • .reorder_columns()
    • .safe_extract()
  • Enhanced column name cleaning logic when as.data.frame.CM_list() tidynames = TRUE, producing more consistent and informative names.
  • Restructured column ordering in the output to prioritize project, package, and registration variables.
  • Simplified logic for reshaping and labelling assessment variables, removing the dependency on .set_long() when pivot.wider = TRUE.
  • Reordered output columns to prioritize key identifiers (project, package, registration, and assessments).

BUG FIXES

  • Fixed an issue where geolocation columns containing only missing values (e.g., _longitude, _latitude) would lead to the final data frame having zero columns. These are now removed conditionally and safely.

CHANGES IN BEHAVIOUR

  • getProjectsCM() adds a new variable in the output project_code that will represent the previous project_id. The new variable project_id will represent the id from the ClimMob server database not the id from the user list of projects.

BUG FIXES

  • Fixes issues in vignetted building reported by CRAN.

BUG FIXES

  • Improves indexing of technologies aliases in ClimMobTools:::as.data.frame()

BUG FIXES

  • Fix an issue in .smart.round() to handle NA in the randomize() function

BUG FIXES

IMPROVEMENTS

IMPROVEMENTS

BUG FIXES

  • Fix an issue in randomise() to check for unbalanced designs
  • Remove dependency to “PlackettLuce” and “climatrends” to avoid errors in CRAN check for Windows

IMPROVEMENTS

  • randomise() deals with unbalanced proportions of technologies, meaning that we can test a whole set of technologies even when not all have equal availability
  • rmGeoIdentity() is added to offer an approach to remove geographical identity of participants
  • rankTricot() builds a PlackettLuce rankings using the tricot data

IMPROVEMENTS

BUG FIXES

  • Fix the function to set the URLs for alternative servers in ClimMob

IMPROVEMENTS

CHANGES IN BEHAVIOUR

  • Imports ‘PlackettLuce’ and ‘climatrends’ by default
  • Use httr::RETRY() instead of httr::GET() as suggested by Anna Vasylytsya
  • A print() method is added
  • New integration with the ‘testing’ server enabling to gather data from this server with the argument server
  • Minor changes in documentation

CHANGES IN BEHAVIOUR

  • Migrating functions from ClimMobTools to gosset and climatrends. ClimMobTools will keep only the functions exclusively related to the ‘ClimMob’ platform. Other functions are transferred to gosset and climatrends to provide a better environment for data handling, analysis and visualization.
  • Retain function getDataCM(), getProjectCM(), randomise() and seed_need()
  • Changes in package description
  • A S3 method as.data.frame() is provided to coerce CM_list into a data frame
  • Internal functions for pivoting data.frames to avoid dependencies
  • Change license to MIT