#r #expss
#r #expss
Вопрос:
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 (не работает):
Затем я создал функцию для всех вызовов exps. Когда я использую эту функцию во фрейме данных, она работает. Но если я помещу эту функцию в цикл 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()
}