169 похожих чатов

Всем привет! А кто нибудь сталкивался с тем, что rbindlist по

разному ведет себя в interative и batch, может кто то подскажет?

На входе: json с вложенными списками, некоторые равны NULL, поэтому используется fill = TRUE.
Но в режиме запуска он просто игнорирует эту колонку, тогда как в ручном все делает правильно.

Выглядит примерно так, отваливается колонка с2 в этом примере:

Mylist <- list(item1 = list(a = "one",
b = 2,
c = list(
c1 = TRUE,
c2 = NULL)),
item2 = list(a = "test",
b = 3,
c = list(
c1 = FALSE,
c2 = NULL)),

item3 = list(a = "txtxt",
b = 2,
c = list(c1 = TRUE,
c2 = TRUE)))

9 ответов

8 просмотров

в batch - это как? через source?

Alеx 🤼‍♂️- Автор вопроса
kablag
в batch - это как? через source?

возможно неправ, но здесь имел ввиду "запускается CRONом" автоматически

Идентично все ведет себя и в консоли и в коде. И ничего не пропадает, он превращает c в колонку. Только не может в атомарный вектор из-зи NULL превратить, поэтому останавливается на list-column. Он и не должен был делать колонки c1 и c2, если об этом речь идет. Преобразование иерархических json — совсем другая песня. ll <- list( item1 = list(a = "one", b = 2, c = list( c1 = TRUE, c2 = NULL)), item2 = list(a = "test", b = 3, c = list( c1 = FALSE, c2 = NULL)), item3 = list(a = "txtxt", b = 2, c = list( c1 = TRUE, c2 = TRUE)) ) df <- data.table::rbindlist(ll, fill = TRUE) dplyr::glimpse(df) #> Rows: 6 #> Columns: 3 #> $ a <chr> "one", "one", "test", "test", "txtxt", "txtxt" #> $ b <dbl> 2, 2, 3, 3, 2, 2 #> $ c <list> TRUE, <NULL>, FALSE, <NULL>, TRUE, TRUE dplyr::bind_rows(ll) #> # A tibble: 6 x 3 #> a b c #> <chr> <dbl> <named list> #> 1 one 2 <lgl [1]> #> 2 one 2 <NULL> #> 3 test 3 <lgl [1]> #> 4 test 3 <NULL> #> 5 txtxt 2 <lgl [1]> #> 6 txtxt 2 <lgl [1]> sessionInfo() #> R version 4.1.0 Patched (2021-05-29 r80411) #> Platform: x86_64-w64-mingw32/x64 (64-bit) #> Running under: Windows 10 x64 (build 19043) #> #> Matrix products: default #> #> locale: #> [1] LC_COLLATE=Russian_Russia.1251 LC_CTYPE=Russian_Russia.1251 #> [3] LC_MONETARY=Russian_Russia.1251 LC_NUMERIC=C #> [5] LC_TIME=Russian_Russia.1251 #> #> attached base packages: #> [1] stats graphics grDevices utils datasets methods base #> #> loaded via a namespace (and not attached): #> [1] rstudioapi_0.13 knitr_1.33 magrittr_2.0.1 tidyselect_1.1.1 #> [5] R6_2.5.0 rlang_0.4.11 fansi_0.5.0 dplyr_1.0.6 #> [9] stringr_1.4.0 styler_1.4.1 highr_0.9 tools_4.1.0 #> [13] data.table_1.14.0 xfun_0.24 utf8_1.2.1 cli_2.5.0 #> [17] DBI_1.1.1 withr_2.4.2 htmltools_0.5.1.1 ellipsis_0.3.2 #> [21] assertthat_0.2.1 yaml_2.2.1 digest_0.6.27 tibble_3.1.2 #> [25] lifecycle_1.0.0 crayon_1.4.1 purrr_0.3.4 ps_1.6.0 #> [29] vctrs_0.3.8 fs_1.5.0 glue_1.4.2 evaluate_0.14 #> [33] rmarkdown_2.9 reprex_2.0.0 stringi_1.6.2 compiler_4.1.0 #> [37] pillar_1.6.1 generics_0.1.0 backports_1.2.1 pkgconfig_2.0.3 Created on 2021-06-17 by the reprex package (v2.0.0)

Alеx 🤼‍♂️- Автор вопроса
Ilya Shutov
Идентично все ведет себя и в консоли и в коде. И н...

я наверное не идеальный пример привел, но разворачивает в обычном режиме в колонки спокойно, и ранее тоже делал. Спасибо за подробный ответ

Alеx 🤼‍♂️
я наверное не идеальный пример привел, но разворач...

нет понятия "обычный режим". и не должен он разворачивать. он сливает на верхнем уровне. содержимое элементов списка матчит либо по позиции, либо по имени. глубже не лезет

Alеx 🤼‍♂️- Автор вопроса
Ilya Shutov
нет понятия "обычный режим". и не должен он развор...

тем не менее, при запуске "руками" все получается, как нужно, а через крон пропадает колонка. в какую сторону смотреть?

Alеx 🤼‍♂️
тем не менее, при запуске "руками" все получается,...

Что именно получается? Можно воспроизводимый пример привести?

Alеx 🤼‍♂️- Автор вопроса
Ilya Shutov
Что именно получается? Можно воспроизводимый приме...

ок я попробую почистить комм данные и скинуть максимально близкий

Alеx 🤼‍♂️
ок я попробую почистить комм данные и скинуть макс...

это не нужно. Достаточно нескольких строк. Продемонстрировать, что именно наблюдается. Вообще, не стоит опираться на визуальное представление в редакторе — оно проходит сложную обработку. Смотрите на внутреннее представление. Корректируем исходный пример: ll <- list( item1 = list(a = "one", b = 2, c = list( c1 = TRUE, c2 = "gg")), item2 = list(a = "test", b = 3, c = list( c1 = FALSE, c2 = NULL)), item3 = list(a = "txtxt", b = 2, c = list(c( c1 = TRUE, c2 = TRUE))) ) df <- data.table::rbindlist(ll, fill = TRUE) Смотрим внутреннее представление и печатный вывод на экран: > dput(df) structure(list(a = c("one", "one", "test", "test", "txtxt"), b = c(2, 2, 3, 3, 2), c = list(TRUE, "gg", FALSE, NULL, c(c1 = TRUE, c2 = TRUE))), row.names = c(NA, -5L), class = c("data.table", "data.frame"), .internal.selfref = <pointer: 0x00000179638f1ef0>) > df a b c 1: one 2 TRUE 2: one 2 gg 3: test 3 FALSE 4: test 3 5: txtxt 2 TRUE,TRUE В RStudio просмотрщике это выглядит как на картинке. Правда в dput

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта