#r #tidyverse #purrr #tibble
#r #tidyverse #муррр #tibble
Вопрос:
Я испытываю странное поведение (если я перезапускаю Rstudio, этот код работает нормально, однако, если я запускаю после запуска другого скрипта, появляется эта ошибка).
-
Прочитайте XML-файл с помощью xml2
-
root_players — это tibble 14 строк x 13 столбцов
- node_players — это список tibbles
- Ошибка при отображении и отмене списка (если я перезапущу R, этот код сработает…но после запуска другого кода происходит сбой)
Просмотр кода
library(xml2)
library(tidyverse)
xml_filename <-"file.xml"
# Leer XML
datos <- read_xml(xml_filename)
meta_datos <- datos %>%
xml_attrs() %>%
t() %>%
as_tibble()
root_players <- xml_find_all(datos, '/SoccerFeed/Player') %>%
xml_attrs() %>%
map(~as_tibble(t(.))) %>%
bind_rows()
node_players <- xml_find_all(datos, '/SoccerFeed/Player') %>%
map(~.x %>%
xml_children() %>%
map(function(.y) {.y %>%
xml_attrs() %>%
t() %>%
as_tibble() %>%
mutate(n_passes = xml_text(.y))}) %>%
bind_rows())
#############################
# HERE ERROR APPEARS
############################
root_players <- root_players %>%
mutate(n = map(node_players, count) %>% unlist()) %>%
uncount(weights = n)
#########################
### ERROR TRACE
#########################
Error: Assigned data `eval(cols[[col]], .data, parent.frame())` must be compatible with existing data.
x Existing data has 14 rows.
x Assigned data has 363 rows.
i Only vectors of size 1 are recycled.
<error/tibble_error_assign_incompatible_size>
Assigned data `eval(cols[[col]], .data, parent.frame())` must be compatible with existing data.
x Existing data has 14 rows.
x Assigned data has 363 rows.
i Only vectors of size 1 are recycled.
Backtrace:
Run `rlang::last_trace()` to see the full context
Комментарии:
1. Попробуйте
purrr::flatten_dfr
илиdplyr::bind_rows
2. где именно? @ciakovx
3. Можете ли вы опубликовать некоторые примеры данных?