Size: a a a

R (язык программирования)

2021 June 17

DB

Dr. Konstantin Blago... in R (язык программирования)
Выполнить version через CRON
источник

IS

Ilya Shutov in R (язык программирования)
Идентично все ведет себя и в консоли и в коде. И ничего не пропадает, он превращает 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)
источник

A

Alеx 🤼‍♂️ in R (язык программирования)
версия R та же выводится
источник

A

Alеx 🤼‍♂️ in R (язык программирования)
я наверное не идеальный пример привел, но разворачивает в обычном режиме в колонки спокойно, и ранее тоже делал.
Спасибо за подробный ответ
источник

IS

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

AS

Alexey Seleznev in R (язык программирования)
У меня иногда, когда несколько версий R установлено, из батника запускается под актуальной, прописанной в path, а из планировщика тот же батник выполняется под старым R.

Причина этого мне до сих пор не ясна
источник

А

Анатолий in R (язык программирования)
Добрый день! Я правильно понимаю,  что fread не может прочитать несколько случайных строк из файла (сэмплировать)?

dt<-fread("file.csv")
dt<-slice_sample(dt, prop=0.05)

Хочу сделать такое без чтения всего файла. Первые n строк нельзя,  записи в файле упорядочены. Нашёл только это,  на винде запихнуть shuf в fread нельзя. Получается вариант- только в самом файле вне R строки перемешивать?
источник

IS

Ilya Shutov in R (язык программирования)
Да. А в чем именно заморочка? Файлы большие? По 100 гигов?
источник

A

Alеx 🤼‍♂️ in R (язык программирования)
тем не менее, при запуске "руками" все получается, как нужно, а через крон пропадает колонка. в какую сторону смотреть?
источник

IS

Ilya Shutov in R (язык программирования)
Что именно получается? Можно воспроизводимый пример привести?
источник

A

Alеx 🤼‍♂️ in R (язык программирования)
ок я попробую почистить комм данные и скинуть максимально близкий
источник

А

Анатолий in R (язык программирования)
csv большие.  Долго читать,  чтобы выкинуть 95 или 99%- как-то странно.  И, опасаюсь,  что просто в память не влезет.
источник

A

Andrey in R (язык программирования)
Можно из csv переложить в БД
источник

IS

Ilya Shutov in R (язык программирования)
Можно поконкретнее, в цифрах?
источник

IS

Ilya Shutov in R (язык программирования)
Да можно и в локальную положить, можно arrow использовать. Только с чем боремся?
источник

A

Andrey in R (язык программирования)
Или же вызов awk запихнуть внутрь fread() и средствами этой утилиты часть строк отобрать
источник

IS

Ilya Shutov in R (язык программирования)
Медленно читает? Используем vroom. Про консоль я даже не упоминал ещё, можно все там и порешать, там файл и засемплировать
источник

А

Анатолий in R (язык программирования)
Если в цифрах, то csv 20Gb, оперативки 6Gb.
С базами я до этого нормально не работал,  попросили посчитать вроде простое,  но исходные данные большие.
источник

PU

Philipp Upravitelev in R (язык программирования)
так может можно прочитать первые 100 строк, понять, какие колонки нужны, и потом импортирвоать уже только их?
источник

А

Анатолий in R (язык программирования)
Колонок там не очень много,  там много строк. Пробовал так на меньших файлах
источник