如何在R中用表格将三个变量制成表格

  • 本文关键字:表格 三个 变量 r tabular
  • 更新时间 :
  • 英文 :


我正试图使用tables包中的tabular,使用三个变量将df数据帧制成表格。结果的格式可以,但我不明白为什么这些值都等于1,而不是使用values变量(频率(。

library(tidyverse)
library(tables)
df <- tibble(UT = c(rep(1, 9), rep(2,9)),
sex = rep(c(rep('MF', 3), rep('M', 3), rep('F', 3)),2),
age = rep(c('a','b','c'), 6),
values = c(1:18))
df <- df %>%
mutate(across(c(UT, sex, age), as.factor))

tabular(UT ~ (age * sex), data=df)
#>                               
#>     age                       
#>     a        b        c       
#>     sex      sex      sex     
#>  UT F   M MF F   M MF F   M MF
#>  1  1   1 1  1   1 1  1   1 1 
#>  2  1   1 1  1   1 1  1   1 1
Created on 2022-09-22 with reprex v2.0.2

也许这有助于

tabular((values)*(sum) ~ (UT *age *sex), data = df)

-输出

UT                                                      
1                          2                            
age                        age                          
a        b        c        a         b         c        
sex      sex      sex      sex       sex       sex      
F   M MF F   M MF F   M MF F   M  MF F   M  MF F   M  MF
values sum 7   4 1  8   5 2  9   6 3  16  13 10 17  14 11 18  15 12

或在base Rxtabs

xtabs(values ~ ., df)

我找到了一个使用pivottabler包的解决方案。

library(pivottabler)
qhpvt(df,"UT",  c("age", "sex"), "sum(values)", totals="NONE")

最新更新