@@ -415,7 +415,14 @@ as_facets_list <- function(x) {
415
415
# distinct facet dimensions and `+` defines multiple facet variables
416
416
# inside each dimension.
417
417
if (is_formula(x )) {
418
- return (f_as_facets_list(x ))
418
+ if (length(x ) == 2 ) {
419
+ rows <- f_as_facets(NULL )
420
+ cols <- f_as_facets(x )
421
+ } else {
422
+ rows <- f_as_facets(x [- 3 ])
423
+ cols <- f_as_facets(x [- 2 ])
424
+ }
425
+ return (list (rows , cols ))
419
426
}
420
427
421
428
# For backward-compatibility with facet_wrap()
@@ -498,16 +505,6 @@ simplify <- function(x) {
498
505
}
499
506
}
500
507
501
- f_as_facets_list <- function (f ) {
502
- lhs <- function (x ) if (length(x ) == 2 ) NULL else x [- 3 ]
503
- rhs <- function (x ) if (length(x ) == 2 ) x else x [- 2 ]
504
-
505
- rows <- f_as_facets(lhs(f ))
506
- cols <- f_as_facets(rhs(f ))
507
-
508
- list (rows , cols )
509
- }
510
-
511
508
as_facets <- function (x ) {
512
509
if (is_facets(x )) {
513
510
return (x )
@@ -532,14 +529,11 @@ f_as_facets <- function(f) {
532
529
# as.quoted() handles `+` specifications
533
530
vars <- as.quoted(f )
534
531
535
- # `.` in formulas is ignored
536
- vars <- discard_dots (vars )
532
+ # `.` in formulas is discarded
533
+ vars <- vars [ ! vapply (vars , identical , logical ( 1 ), as.name( " . " ))]
537
534
538
535
as_quosures(vars , env , named = TRUE )
539
536
}
540
- discard_dots <- function (x ) {
541
- x [! vapply(x , identical , logical (1 ), as.name(" ." ))]
542
- }
543
537
544
538
is_facets <- function (x ) {
545
539
if (! is.list(x )) {
0 commit comments