expss tab_pivot () не возвращает ничего из цикла for - PullRequest
1 голос
/ 02 апреля 2019

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 Ответ

0 голосов
/ 02 апреля 2019

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

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()

}
...