Как декодировать этот вложенный повторяющийся объект json в dataframe

Если вы не намерены использовать изображения операционной системы Ayufan, я бы предложил попробовать Armbian Xenial (на основе Ubuntu 16.04), а затем вы можете применить решение из пункта 4 в вашем сообщении, поскольку подход, предложенный пользователем «martinayotte» в этом потоке, получил положительную обратную связь, и он также дает возможность проверить, работает ли вновь активированное SPI-устройство.

Лично я был бегущий Armbian Xenial на моем 4GB Rock64 и до сих пор не жалуется, кроме этого , но я думаю, что это более общая проблема, в отличие от армбийского.

Кроме того, я наткнулся на этот пост , который предлагает решение для платы Pine64, а не Rock64, но, возможно, вы можете попытаться ее адаптировать.

1
задан alistaire 19 January 2019 в 19:01
поделиться

1 ответ

Чтобы сохранить данные, связанные с текущими строками, вам нужно будет выполнить итерации fromJSON по targets. Вам нужно будет сознательно пропустить значение NA (поместив заполнитель, который будет красиво расширяться), и обернуть все в [...], потому что пятое наблюдение - это плохо сформированный JSON.

После этого вам понадобится кое-что, чтобы привести его в правильную форму. tidyr::unnest расширит столбец списка, а tidyr::spread преобразует данные в широкую форму.

library(tidyverse)

df2 <- df %>% 
    mutate(targets = map(targets, ~if (is.na(.x)) {    # iterate, create list column
            tibble(target = 'Age')    # what to return for NAs
        } else {
            jsonlite::fromJSON(paste0('[', .x, ']'))    # parse fixed JSON
        })) %>% 
    unnest() %>%     # expand list column
    spread(target, segment)    # reshape from long to wide form

df2
#> # A tibble: 5 x 11
#>    X__1 country message created_at          updated_at          lang 
#>   <dbl>   <dbl> <chr>   <dttm>              <dttm>              <chr>
#> 1     1       3 "<p>Co… 2018-05-31 07:25:01 2018-06-03 13:49:53 it-IT
#> 2     2       3 <p>Con… 2018-05-14 14:24:20 2018-05-21 08:52:41 it-IT
#> 3     3       3 "<p>L\… 2017-11-16 11:27:48 2017-11-16 11:29:58 it-IT
#> 4     4       3 "<p>Ch… 2018-05-28 10:42:35 2018-05-31 10:50:53 it-IT
#> 5     5       3 "<div … 2018-05-21 18:01:38 2018-06-10 14:13:53 it-IT
#> # … with 5 more variables: political_probability <dbl>, advertiser <chr>,
#> #   id <dbl>, Age <chr>, Region <chr>

df2 %>% select(id, Age, Region)
#> # A tibble: 5 x 3
#>      id Age                           Region    
#>   <dbl> <chr>                         <chr>     
#> 1  3228 "compresa tra 35 e 64 anni "  <NA>      
#> 2  3229 "compresa tra 25 e 64 anni "  <NA>      
#> 3  3230 <NA>                          <NA>      
#> 4  3231 "pari o superiore a 13 anni " <NA>      
#> 5  3232 18 and older                  Basilicata
0
ответ дан alistaire 19 January 2019 в 19:01
поделиться
Другие вопросы по тегам:

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