@@ -175,25 +175,25 @@ derive_req_vars <- function(
175175 ref_range_upper_lim_var ,
176176 sel_x ,
177177 sel_y ) {
178- if (! is.null(dataset )) {
178+ if (! is.null(dataset ) & nrow( dataset ) != 0 ) {
179179 # Get the data frame in required structure (Pivot wider grouped by certain variables)
180- dataset <- dataset %> %
181- dplyr :: filter(.data [[lb_test_var ]] %in% c(sel_x , sel_y )) %> %
182- dplyr :: mutate(
183- r_ULN = .data [[lb_result_var ]] / .data [[ref_range_upper_lim_var ]],
184- r_Baseline = .data [[lb_result_var ]] / .data [[" BASE" ]]
185- ) %> %
186- dplyr :: select(dplyr :: all_of(c(subjectid_var , arm_var , lb_test_var , visit_var , " r_ULN" , " r_Baseline" ))) %> %
187- dplyr :: group_by(.data [[subjectid_var ]], .data [[arm_var ]], .data [[lb_test_var ]], .data [[visit_var ]]) %> %
188- dplyr :: mutate(row = dplyr :: row_number()) %> %
189- tidyr :: pivot_wider(names_from = tidyr :: all_of(lb_test_var ), values_from = c(" r_ULN" , " r_Baseline" )) %> %
190- dplyr :: select(- dplyr :: all_of(" row" )) %> %
191- dplyr :: mutate(
192- " r_ULN_{{sel_x}}" = as.numeric(.data [[paste0(" r_ULN_" , sel_x )]]),
193- " r_ULN_{{sel_y}}" = as.numeric(.data [[paste0(" r_ULN_" , sel_y )]]),
194- " r_Baseline_{{sel_x}}" = as.numeric(.data [[paste0(" r_Baseline_" , sel_x )]]),
195- " r_Baseline_{{sel_y}}" = as.numeric(.data [[paste0(" r_Baseline_" , sel_y )]])
196- )
180+ dataset <- dataset %> %
181+ dplyr :: filter(.data [[lb_test_var ]] %in% c(sel_x , sel_y )) %> %
182+ dplyr :: mutate(
183+ r_ULN = .data [[lb_result_var ]] / .data [[ref_range_upper_lim_var ]],
184+ r_Baseline = .data [[lb_result_var ]] / .data [[" BASE" ]]
185+ ) %> %
186+ dplyr :: select(dplyr :: all_of(c(subjectid_var , arm_var , lb_test_var , visit_var , " r_ULN" , " r_Baseline" ))) %> %
187+ dplyr :: group_by(.data [[subjectid_var ]], .data [[arm_var ]], .data [[lb_test_var ]], .data [[visit_var ]]) %> %
188+ dplyr :: mutate(row = dplyr :: row_number()) %> %
189+ tidyr :: pivot_wider(names_from = tidyr :: all_of(lb_test_var ), values_from = c(" r_ULN" , " r_Baseline" )) %> %
190+ dplyr :: select(- dplyr :: all_of(" row" )) %> %
191+ dplyr :: mutate(
192+ " r_ULN_{{sel_x}}" = as.numeric(.data [[paste0(" r_ULN_" , sel_x )]]),
193+ " r_ULN_{{sel_y}}" = as.numeric(.data [[paste0(" r_ULN_" , sel_y )]]),
194+ " r_Baseline_{{sel_x}}" = as.numeric(.data [[paste0(" r_Baseline_" , sel_x )]]),
195+ " r_Baseline_{{sel_y}}" = as.numeric(.data [[paste0(" r_Baseline_" , sel_y )]])
196+ )
197197 }
198198 return (dataset )
199199}
@@ -268,8 +268,8 @@ generate_plot <- function(
268268 y_rng_lower ,
269269 y_rng_upper ,
270270 source = NULL ) {
271- if (is.null(dataset )) {
272- return (dataset )
271+ if (is.null(dataset ) | nrow( dataset ) == 0 ) {
272+ return (NULL )
273273 }
274274
275275 # Prepare x-axis layout based on whether range has been specified
0 commit comments