Skip to content

Commit 3408ea4

Browse files
committed
prevent dropping attributes
1 parent f468053 commit 3408ea4

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

R/geom-.R

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,7 @@ Geom <- ggproto("Geom",
183183
}
184184

185185
modified_aes <- cleanup_mismatched_data(modified_aes, nrow(data), "after_scale")
186-
187-
modified_aes <- data_frame0(!!!modified_aes)
188-
189-
data <- data_frame0(!!!defaults(modified_aes, data))
186+
data[names(modified_aes)] <- modified_aes
190187
}
191188

192189
# Override mappings with params

R/layer.R

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -414,8 +414,8 @@ Layer <- ggproto("Layer", NULL,
414414
stat_data <- plot$scales$transform_df(stat_data)
415415
}
416416
stat_data <- cleanup_mismatched_data(stat_data, nrow(data), "after_stat")
417-
418-
data_frame0(!!!defaults(stat_data, data))
417+
data[names(stat_data)] <- stat_data
418+
data
419419
},
420420

421421
compute_geom_1 = function(self, data) {
@@ -499,6 +499,10 @@ set_draw_key <- function(geom, draw_key = NULL) {
499499
}
500500

501501
cleanup_mismatched_data <- function(data, n, fun) {
502+
if (vec_duplicate_any(names(data))) {
503+
data <- data[unique0(names(data))]
504+
}
505+
502506
failed <- !lengths(data) %in% c(0, 1, n)
503507
if (!any(failed)) {
504508
return(data)

R/scales-.R

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ ScalesList <- ggproto("ScalesList", NULL,
7878
function(scale) scale$map_df(df = df)
7979
), recursive = FALSE)
8080

81-
data_frame0(!!!mapped, df[setdiff(names(df), names(mapped))])
81+
df[names(mapped)] <- mapped
82+
df
8283
},
8384

8485
transform_df = function(self, df) {

0 commit comments

Comments
 (0)