expss tab_pivot() не возвращает ничего из цикла for

expss отлично подходит для моей цели, но у меня небольшая проблема с этим.

Попробуйте 1 (не работает): когда я использую expss на фрейме данных, все работает нормально, но затем я хочу установить поднабор фрейма данных и затем вызвать expss для каждого подмножества. Для подмножества и вызова expss я использую цикл for. Кадр данных правильно задан, но expss ничего не возвращает.




municipal_lists <- unique(leeftijd1$Regio)[1:3]

for (i in seq_along(municipal_lists)){
  zx <-subset(leeftijd1, leeftijd1$Regio == municipal_lists[i])
  zx %>%
    expss::tab_rows(Regio) %>%
    expss::tab_cells(`Leeftijdscategorie 1`) %>%
    expss::tab_cols(Perioden) %>%
    expss::tab_stat_cases() %>%
    expss::tab_pivot() 

}

Попробуйте 2 (не работает): Затем я создал функцию всех вызовов Expss. Когда я использую эту функцию на фрейме данных, она работает. Но если я помещаю эту функцию в цикл for, из функции ничего не возвращается.

get_table <-function(zx){
    zx %>%
    expss::tab_rows(Regio) %>%
    expss::tab_cells(`Leeftijdscategorie 1`) %>%
    expss::tab_cols(Perioden) %>%
    expss::tab_stat_cases() %>%
    expss::tab_pivot() #%>%


}



municipal_lists <- unique(leeftijd1$Regio)[1:3]

for (i in seq_along(municipal_lists)){
  zx <-subset(leeftijd1, leeftijd1$Regio == municipal_lists[i])
  get_table(zx)

}

Функция работает: вызов функции работает без цикла for, но для всего фрейма данных (с фиксированным индексом)



get_table <-function(zx){
    zx %>%
    expss::tab_rows(Regio) %>%
    expss::tab_cells(`Leeftijdscategorie 1`) %>%
    expss::tab_cols(Perioden) %>%
    expss::tab_stat_cases() %>%
    expss::tab_pivot() 


}



municipal_lists <- unique(leeftijd1$Regio)[1:3]
 zx <-subset(leeftijd1, leeftijd1$Regio == municipal_lists[1])
 get_table(zx)



Прямой вызов работает: самая простая форма без цикла for или без вызова функции работает должным образом.




  zx <- leeftijd1
  zx %>%
    expss::tab_rows(Regio) %>%
    expss::tab_cells(`Leeftijdscategorie 1`) %>%
    expss::tab_cols(Perioden) %>%
    expss::tab_stat_cases() %>%
    expss::tab_pivot() 


Итак, как мне получить таблицу Expss для каждого подмножества большого кадра данных? Может кто-нибудь направить меня, пожалуйста.

1 ответ

Вам нужно что-то сделать с результатом ваших вычислений внутри цикла. Вы можете распечатать их, например:

municipal_lists <- unique(leeftijd1$Regio)[1:3]

for (i in seq_along(municipal_lists)){
  zx <-subset(leeftijd1, leeftijd1$Regio == municipal_lists[i])
  zx %>%
    expss::tab_rows(Regio) %>%
    expss::tab_cells(`Leeftijdscategorie 1`) %>%
    expss::tab_cols(Perioden) %>%
    expss::tab_stat_cases() %>%
    expss::tab_pivot()  %>%
    print()

}
Другие вопросы по тегам