我如何用模型将单个因子变量制成?
我尝试了:
> modelsummary::datasummary_crosstab(cyl ~ 1, data = mtcars)
Error in datasummary(formula = stats::as.formula(d_formula), data = data, :
subscript out of bounds
预期的结果是(将百分比调整为列的总和为1):
MTCARS数据集列都是类型“ NUM”,但是如果将CYL指定为一个因素,则可以在所有分类变量(有效排除所有其他“ NUM” COLS)上使用
datasummary_skim()
,例如
library(tidyverse)
str(mtcars)
#> 'data.frame': 32 obs. of 11 variables:
#> $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
#> $ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
#> $ disp: num 160 160 108 258 360 ...
#> $ hp : num 110 110 93 110 175 105 245 62 95 123 ...
#> $ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
#> $ wt : num 2.62 2.88 2.32 3.21 3.44 ...
#> $ qsec: num 16.5 17 18.6 19.4 17 ...
#> $ vs : num 0 0 1 1 0 1 0 1 1 1 ...
#> $ am : num 1 1 1 0 0 0 0 0 0 0 ...
#> $ gear: num 4 4 4 3 3 3 3 4 4 4 ...
#> $ carb: num 4 4 1 1 2 1 4 2 2 4 ...
# make cyl a factor
df <- mtcars
df$cyl <- factor(df$cyl)
modelsummary::datasummary_skim(type = "categorical", data = df)
n | % | |
---|---|---|
11 | 34.4 | |
7 | 21.9 | |
14 | 43.8 |
于2025-03-11创建 确保这是否适用于您的用例,但值得进一步探索。