R: Экспорт вложенного списка фреймов данных - PullRequest
0 голосов
/ 30 апреля 2019

Я создал вложенный список фреймов данных, используя функцию tabyl в janitory и lapply.Поскольку функция tabyl с тремя переменными возвращает список фреймов данных, использование результатов lapply во вложенном списке.В этом случае я смотрю на различные переменные по демократическим показателям и регионам.Результат выглядит примерно так:

    $ Freedom of Expression
    ..$ Africa (tabyl)
    ..$ Asia (tabyl)
    ..$ Europe (tabyl)
    $ Freedom of Movement
    ..$ Africa (tabyl)
    ..$ Asia (tabyl)
    ..$ Europe (tabyl)

С каждой областью, имеющей фрейм данных, который выглядит следующим образом:

regime      High Freedom of Expression  Low Freedom of Expression   Mid-Range Freedom of Expression     Total
Democracy   100.0% (1)          0.0% (0)            70.0% (21)              44.9% (22)
Hybrid Regime   0.0% (0)            38.9%(7)            30.0%  (9)              32.7% (16)
Non-Democratic Regime 0.0% (0)          61.1% (11)              0.0%  (0)               22.4% (11)

Я хотел бы экспортировать это в .csv или текстфайл, чтобы поделиться с людьми, которые не знают, как использовать R.

Я попытался использовать функцию flatten из purrr, однако это приводит к списку регионов, но с кросс-таблицами только из одного изпеременные.Я также использовал list.flatten из пакета rlist, но в итоге он возвращает каждую строку фрейма данных как отдельный элемент в списке.

Благодарен за любые предложения.

1 Ответ

1 голос
/ 30 апреля 2019

Сначала map(bind_rows) (на глубине 1), затем секунда bind_rows

library(tidyverse)
library(janitor)
#> 
#> Attaching package: 'janitor'
#> The following objects are masked from 'package:stats':
#> 
#>     chisq.test, fisher.test

lapply(
  replicate(2, mtcars, simplify = FALSE),
  tabyl, cyl, gear, am
) %>% 
  map(bind_rows, .id = "region") %>% 
  bind_rows(.id = "freedom_of")
#>  freedom_of region cyl  3 4 5
#>           1      0   4  1 2 0
#>           1      0   6  2 2 0
#>           1      0   8 12 0 0
#>           1      1   4  0 6 2
#>           1      1   6  0 2 1
#>           1      1   8  0 0 2
#>           2      0   4  1 2 0
#>           2      0   6  2 2 0
#>           2      0   8 12 0 0
#>           2      1   4  0 6 2
#>           2      1   6  0 2 1
#>           2      1   8  0 0 2

Создано в 2019-04-30 пакетом Представить (v0.2.1)

...