From 7b3ff889d27ea84f3dbc73fc7932a49973a40d57 Mon Sep 17 00:00:00 2001 From: Liang Zhang Date: Wed, 3 Apr 2024 17:32:29 +0800 Subject: [PATCH] Remove `wrangle_data()` Fix #86 Signed-off-by: Liang Zhang --- DESCRIPTION | 1 - NAMESPACE | 1 - R/preproc.R | 37 ----------------------------------- man/wrangle_data.Rd | 22 --------------------- tests/testthat/test-preproc.R | 23 ---------------------- 5 files changed, 84 deletions(-) delete mode 100644 man/wrangle_data.Rd diff --git a/DESCRIPTION b/DESCRIPTION index fcf364a..d453a6a 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -15,7 +15,6 @@ Depends: R (>= 4.1.0) Imports: dplyr, - jsonlite, pracma, purrr, rlang (>= 0.1.2), diff --git a/NAMESPACE b/NAMESPACE index 40a2f5e..968c27b 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -40,7 +40,6 @@ export(sumweighted) export(switchcost) export(symncmp) export(synwin) -export(wrangle_data) import(dplyr) import(rlang) import(tidyr) diff --git a/R/preproc.R b/R/preproc.R index 1f9a645..e83d0e8 100644 --- a/R/preproc.R +++ b/R/preproc.R @@ -1,23 +1,3 @@ -#' Wrangle Raw Data -#' -#' Parse raw json string data as [data.frame()] and store them in a list column. -#' -#' @param data The raw data. -#' @param col_raw_json The column name in which stores user's raw data in -#' format of json string. -#' @param name_raw_parsed The name used to store parsed data. -#' @return A [data.frame] contains the parsed data. -#' @export -wrangle_data <- function(data, - col_raw_json = "game_data", - name_raw_parsed = "raw_parsed") { - data[[name_raw_parsed]] <- lapply( - data[[col_raw_json]], - parse_raw_json - ) - data[, names(data) != col_raw_json, drop = FALSE] -} - #' Feed Raw Data to Pre-processing #' #' Calculate indices using data typically returned by [wrangle_data()]. @@ -69,23 +49,6 @@ preproc_data <- function(data, fn, ..., results } -# helper functions -parse_raw_json <- function(jstr) { - tryCatch( - jsonlite::fromJSON(jstr), - error = function(cnd) { - warn( - c( - "Failed to parse json string:", - conditionMessage(cnd), - i = "Will parse it as `NULL` instead." - ) - ) - return() - } - ) -} - calc_indices <- function(data, fn, ..., col_raw_parsed = "raw_parsed") { # used as a temporary id for each element col_id <- ".id" diff --git a/man/wrangle_data.Rd b/man/wrangle_data.Rd deleted file mode 100644 index 53d716b..0000000 --- a/man/wrangle_data.Rd +++ /dev/null @@ -1,22 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/preproc.R -\name{wrangle_data} -\alias{wrangle_data} -\title{Wrangle Raw Data} -\usage{ -wrangle_data(data, col_raw_json = "game_data", name_raw_parsed = "raw_parsed") -} -\arguments{ -\item{data}{The raw data.} - -\item{col_raw_json}{The column name in which stores user's raw data in -format of json string.} - -\item{name_raw_parsed}{The name used to store parsed data.} -} -\value{ -A \link{data.frame} contains the parsed data. -} -\description{ -Parse raw json string data as \code{\link[=data.frame]{data.frame()}} and store them in a list column. -} diff --git a/tests/testthat/test-preproc.R b/tests/testthat/test-preproc.R index 4650153..4f58521 100644 --- a/tests/testthat/test-preproc.R +++ b/tests/testthat/test-preproc.R @@ -1,26 +1,3 @@ -test_that("Basic situation for `wrangle_data()`", { - js_str <- r"([{"a": 1, "b": 2}])" - data <- tibble::tibble(game_data = js_str) - wrangle_data(data) |> - expect_named("raw_parsed") |> - purrr::pluck("raw_parsed", 1) |> - expect_identical(jsonlite::fromJSON(js_str)) - wrangle_data(data, name_raw_parsed = "parsed") |> - expect_named("parsed") -}) - -test_that("Can deal with invalid or empty json", { - data_case_invalid <- data.frame(game_data = "[1") - wrangle_data(data_case_invalid) |> - purrr::pluck("raw_parsed", 1) |> - expect_null() |> - expect_warning("Failed to parse json string") - data_case_empty <- data.frame(game_data = c("[]", "{}")) - wrangle_data(data_case_empty) |> - purrr::pluck("raw_parsed") |> - purrr::walk(expect_length, 0) -}) - test_that("Basic situation in `preproc_data()`", { data <- tibble::tibble( user_id = 1:2,