Может ли пакет 'expss' R быть эквивалентом SAS PROC TABULATE? - PullRequest
0 голосов
/ 15 мая 2018

В пакете expss для R следующий простой код дает количество автомобилей для каждого из пересеченных значений 'cyl', 'gear', 'am' и 'vs'. Используя подобную схему, можно ли заменить этот счет какой-либо статистикой, вычисленной по пятой переменной (например, медиана 'mpg')?

mtcars %>% 
tab_cells(cyl) %>% 
tab_cols(vs, am) %>% 
tab_rows(gear) %>%
tab_stat_cases() %>% 
tab_pivot()

1 Ответ

0 голосов
/ 15 мая 2018

Если я правильно понимаю, вам нужно:

mtcars %>% 
    tab_cells(mpg) %>% 
    tab_cols(vs, am) %>% 
    tab_rows(set_var_lab(gear, "gear") %nest% set_var_lab(cyl, "cyl")) %>%
    tab_stat_median() %>% 
    tab_pivot()

Это дает:

 # |      |    |     |    |     |        |   vs |      |   am |      |
 # |      |    |     |    |     |        |    0 |    1 |    0 |    1 |
 # | ---- | -- | --- | -- | --- | ------ | ---- | ---- | ---- | ---- |
 # | gear |  3 | cyl |  4 | mpg | Median |      | 21.5 | 21.5 |      |
 # |      |    |     |  6 | mpg | Median |      | 19.8 | 19.8 |      |
 # |      |    |     |  8 | mpg | Median | 15.2 |      | 15.2 |      |
 # |      |  4 | cyl |  4 | mpg | Median |      | 25.9 | 23.6 | 28.9 |
 # |      |    |     |  6 | mpg | Median | 21.0 | 18.5 | 18.5 | 21.0 |
 # |      |    |     |  8 | mpg | Median |      |      |      |      |
 # |      |  5 | cyl |  4 | mpg | Median | 26.0 | 30.4 |      | 28.2 |
 # |      |    |     |  6 | mpg | Median | 19.7 |      |      | 19.7 |
 # |      |    |     |  8 | mpg | Median | 15.4 |      |      | 15.4 |

ОБНОВЛЕНИЕ:

  • tab_rows- переменные группировки строк
  • tab_cols - переменные группировки столбцов
  • tab_cells - переменные, по которым мы вычисляем статистику.Это вполне естественно, когда мы вычисляем итоговую статистику, такую ​​как медиана, среднее значение и т. Д., Но это может сбивать с толку, когда мы вычисляем процент случаев или столбца.Вы можете получить некоторые документы, набрав в консоли ?tab_cells.

`` `

|         |   tab_cols     |
|tab_rows | stat(tab_cells)|

` ``

Для подсчета автомобилей:

mtcars %>% 
    tab_cells(mpg) %>% 
    tab_cols(vs, am) %>% 
    tab_rows(set_var_lab(gear, "gear") %nest% set_var_lab(cyl, "cyl")) %>%
    tab_stat_median() %>% 
    tab_stat_valid_n(label = "#Total") %>% 
    tab_pivot(stat_position = "inside_rows")

Вы можете управлять количеством десятичных знаков с помощью expss_digits(), но это меняет количество десятичных знаков для всей таблицы.Или, если вы используете RStudio в Windows, вы можете попробовать expss_output_viewer() для вывода в средстве просмотра RStudio.В этом случае строки с «#» будут отображаться без десятичных знаков.

...