如何从R中使用`freq`函数生成的表中排除累积比例和总比例?

时间:2019-07-01 16:35:54

标签: r summarytools

我正在使用freq包中的summarytools函数在RStudio中创建频率表。

似乎无法关闭表中的“累积”和“总百分比”列。例如:

library(summarytools)
data(mtcars)
view(freq(mtcars$cyl, totals=FALSE, cumul=FALSE))

仍然会产生一个包含重复的累积和总计百分比列的表。我需要的是一张包含变量值,计数#和百分比的表。

我尝试使用st_options(freq.cumul = FALSE, freq.totals = FALSE)重置全局选项,但收到错误消息:

Error in st_options(freq.cumul = FALSE, freq.totals = FALSE) : 
  unused arguments (freq.cumul = FALSE, freq.totals = FALSE)

更新

最后弄清楚了-我在freq函数中没有使用足够的参数。以下代码产生了一个不错的频率表:

cyl_freq <- freq(mtcars$cyl, report.nas = FALSE, totals=FALSE, cumul=FALSE, style = "rmarkdown", headings = FALSE);
view(cyl_freq)

,如果您需要在多列中创建一堆表multiple _:

multiple_freq <- lapply(mtcars[c(2,8:11)], function(x) freq(x, report.nas = FALSE, totals=FALSE, cumul=FALSE, headings = FALSE));
view(multiple_freq)

2 个答案:

答案 0 :(得分:1)

这不是使用summarytools软件包,但是我认为这可能是您要寻找的。

frtable <- table(mtcars$cyl)

percent <- prop.table(frtable)

dt <- cbind(frtable , percent) %>% set_colnames(c("Count", "Percent"))

DT::datatable(dt) %>% DT::formatPercentage('percent')

答案 1 :(得分:1)

似乎您已找到如何使其工作...提示,您可以跳过lapply部分。因此,这应该可以正常工作:

library(summarytools)
freq(mtcars[c(2,8:11)], 
     report.nas=FALSE, totals=FALSE, cumul=FALSE, headings=FALSE)

存在一个问题,在0.9.8之前的版本中,cumul参数没有注册,但已修复。 0.9.8版现在可以在CRAN上使用,但是您始终可以使用remotes::install_github("dcomtois/summarytools")

从GitHub安装最新版本。