From 5acffe698540eee06309b555ac6dcc10f5ed44b0 Mon Sep 17 00:00:00 2001 From: Albert Z Wang Date: Wed, 19 Jun 2019 16:56:07 -0400 Subject: [PATCH 1/2] Fix assignment into empty filter lens --- R/dataframe-lenses.R | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/R/dataframe-lenses.R b/R/dataframe-lenses.R index 4c6e965..1d0d99e 100644 --- a/R/dataframe-lenses.R +++ b/R/dataframe-lenses.R @@ -30,7 +30,9 @@ filter_il <- function(...){ } , set = function(d,x){ filt_vec <- rlang::eval_tidy(filt_quo, d) - d[filt_vec,] <- x + if (any(filt_vec)){ + d[filt_vec,] <- x + } d }) } @@ -67,7 +69,9 @@ filter_l <- function(...){ } , set = function(d,x){ filt_vec <- rlang::eval_tidy(filt_expr, d) - d[filt_vec, ! names(d) %in% expr_symbols] <- x + if (any(filt_vec)) { + d[filt_vec, ! names(d) %in% expr_symbols] <- x + } d }) } From f74c91390ceeef19b66cb71ca859d62ed625bc40 Mon Sep 17 00:00:00 2001 From: Albert Z Wang Date: Wed, 10 Jul 2019 12:13:09 -0400 Subject: [PATCH 2/2] Add non-empty check to rows_l assignment --- R/base-lenses.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/R/base-lenses.R b/R/base-lenses.R index 6991abb..99cbce0 100644 --- a/R/base-lenses.R +++ b/R/base-lenses.R @@ -363,7 +363,9 @@ env_l <- lens(environment, `environment<-`) rows_l <- function(rows, drop = FALSE){ lens(view = function(d) d[rows, ,drop = drop] , set = function(d, x){ - d[rows, ] <- x + if (length(rows) > 0){ + d[rows, ] <- x + } d }) }