@@ -250,13 +250,15 @@ add_terminal_token_after <- function(pd_flat) {
250
250
filter(terminal ) %> %
251
251
arrange_pos_id()
252
252
253
- new_tibble(list (
254
- pos_id = terminals $ pos_id ,
255
- token_after = lead(terminals $ token , default = " " )
256
- ),
257
- nrow = nrow(terminals )
258
- ) %> %
259
- left_join(pd_flat , . , by = " pos_id" )
253
+ rhs <- new_tibble(
254
+ list (
255
+ pos_id = terminals $ pos_id ,
256
+ token_after = lead(terminals $ token , default = " " )
257
+ ),
258
+ nrow = nrow(terminals )
259
+ )
260
+
261
+ left_join(pd_flat , rhs , by = " pos_id" )
260
262
}
261
263
262
264
# ' @rdname add_token_terminal
@@ -266,14 +268,15 @@ add_terminal_token_before <- function(pd_flat) {
266
268
filter(terminal ) %> %
267
269
arrange_pos_id()
268
270
269
- new_tibble(
271
+ rhs <- new_tibble(
270
272
list (
271
273
id = terminals $ id ,
272
274
token_before = lag(terminals $ token , default = " " )
273
275
),
274
276
nrow = nrow(terminals )
275
- ) %> %
276
- left_join(pd_flat , . , by = " id" )
277
+ )
278
+
279
+ left_join(pd_flat , rhs , by = " id" )
277
280
}
278
281
279
282
@@ -351,13 +354,19 @@ nest_parse_data <- function(pd_flat) {
351
354
internal $ child <- NULL
352
355
353
356
child $ parent_ <- child $ parent
354
- joined <-
355
- child %> %
356
- nest_(. , " child" , setdiff(names(. ), " parent_" )) %> %
357
- left_join(internal , . , by = c(" id" = " parent_" ))
358
- nested <- joined
359
- nested $ child <- map2(nested $ child , nested $ internal_child , combine_children )
360
- nested <- nested [, setdiff(names(nested ), " internal_child" )]
357
+
358
+ rhs <- nest_(child , " child" , setdiff(names(child ), " parent_" ))
359
+
360
+ nested <- left_join(internal , rhs , by = c(" id" = " parent_" ))
361
+
362
+ children <- nested $ child
363
+ for (i in seq_along(children )) {
364
+ new <- combine_children(children [[i ]], nested $ internal_child [[i ]])
365
+ # Work around is.null(new)
366
+ children [i ] <- list (new )
367
+ }
368
+ nested $ child <- children
369
+ nested $ internal_child <- NULL
361
370
nest_parse_data(nested )
362
371
}
363
372
0 commit comments