Мой вопрос может быть связан с расширением следующего обсуждения: R expss package: форматировать числа по статистике c / применять другой формат для чередующихся строк
Я хотел бы понять грамматика условий, чтобы можно было писать свои собственные форматы. Рассмотрим фрейм данных вставки из наборов данных. Затем мы создаем следующую таблицу благодаря expss:
infert %>%
tab_cells(parity) %>%
### TOTAL
tab_cols(total()) %>%
tab_stat_cases(label="N", total_row_position="none") %>%
### OTHER VARIABLES
tab_cols(education) %>%
tab_stat_cases(label="N", total_row_position="none") %>%
tab_stat_cpct(label="%Col.", total_row_position="none") %>%
tab_pivot(stat_position="inside_columns") %>%
format_vert()
В последней строке используется базовое форматирование c, как обсуждалось в приведенном выше URL-адресе. Подробно:
format_vert = function(tbl, pct_digits=2, n_digits=0){
#Finding columns to format
pct_cols = grepl("\\|%Col.$", names(tbl), perl = TRUE)
n_cols = grepl("\\|N$", names(tbl), perl = TRUE)
#Format
recode(tbl[,-1]) = other ~ function(x) ifelse(is.numeric(x) & is.na(x), 0, x)
tbl[,pct_cols] = format(tbl[,pct_cols], digits=pct_digits, nsmall=pct_digits)
tbl[,n_cols] = format(tbl[,n_cols], digits=n_digits, nsmall=n_digits)
recode(tbl[,pct_cols]) = other ~ function(x) paste0(x, "%")
tbl
}
Я понимаю, как форматировать целые таблицы или столбцы (эксперты заметили бы различия по сравнению с примером в URL), но что если я только wi sh отформатирую спецификацию c клеток? Например, как установить digits=0
, когда значение = 100,00% (показывать только 100%)? Я не знаю, стоит ли мне go для recode
, format
, когда и куда ссылаться tbl[,pct_cols]
...
Спасибо!