在 datasummary 中显示唯一值的计数,并使用数据组合两个不同的描述性统计表
Show count of unique values in datasummary and combine two different tables of descriptive statistics using data
我真的很喜欢 modelsummary
包,我正在尝试制作一个混合不同类型的描述性统计数据的 table。第一部分很简单:我可以对 var2
和 var3
进行基本描述。不过,我无法正确理解第二部分。
- 我想计算变量
var1
的唯一条目数,即 26。
- 我希望能够将两者合二为一table。
var1<-rep(LETTERS, 5)
var2<-rnorm(length(var1), mean=50, sd=10)
var3<-rnorm(length(var1), mean=10, sd=5)
df<-data.frame(var1, var2, var3)
library(gr)
library(modelsummary)
#This gets the descriptives of var2 and var3
datasummary(var2+var3~Mean+SD+N, data=df)
#htis returns a long column of the number of entries of each value of var1; I would just like the number 26 here and combine it with the above
datasummary(var1~length, data=df)
datasummary()
中的混合因子和数字变量有点棘手。这里有两个选项。
第一种方法是用 output="data.frame"
创建第一个 table,并将其提供给第二个 table 的 add_rows
参数,插入“空”根据需要对齐两个 tables:
的列
library(modelsummary)
var1<-rep(LETTERS[1:5], 5)
var2<-rep(LETTERS[8:12], 5)
var3<-rnorm(length(var1), mean=50, sd=10)
var4<-rnorm(length(var1), mean=10, sd=5)
df<-data.frame(var1, var2, var3, var4)
# function to insert empty columns
empty <- function(...) ""
ar <- datasummary(var1 + var2 ~ empty + empty + N,
data = df,
output = "data.frame")
datasummary(var3 + var4 ~ Heading("") * empty + Mean + SD + N,
data = df,
add_rows = ar)
Mean
SD
N
var3
52.66
9.35
25
var4
9.21
5.25
25
var1
A
5
B
5
C
5
D
5
E
5
var2
H
5
I
5
J
5
K
5
L
5
第二种方法是使用带有 ~1
作为公式参数的 datasummary_balance
模板函数。这当然不太灵活,但它适用于简单的情况:
datasummary_balance(~ 1, data = df)
Mean
Std. Dev.
var3
52.7
9.4
var4
9.2
5.2
N
Pct.
var1
A
5
20.0
B
5
20.0
C
5
20.0
D
5
20.0
E
5
20.0
var2
H
5
20.0
I
5
20.0
J
5
20.0
K
5
20.0
L
5
20.0
基于add_row
(https://vincentarelbundock.github.io/modelsummary/articles/datasummary.html#add_rows)
new_row <- data.frame('var1',
"-",
"-",
length(unique((var1))))
datasummary(var2+var3~Mean+SD+N, data=df,
add_rows = new_row)
我真的很喜欢 modelsummary
包,我正在尝试制作一个混合不同类型的描述性统计数据的 table。第一部分很简单:我可以对 var2
和 var3
进行基本描述。不过,我无法正确理解第二部分。
- 我想计算变量
var1
的唯一条目数,即 26。 - 我希望能够将两者合二为一table。
var1<-rep(LETTERS, 5)
var2<-rnorm(length(var1), mean=50, sd=10)
var3<-rnorm(length(var1), mean=10, sd=5)
df<-data.frame(var1, var2, var3)
library(gr)
library(modelsummary)
#This gets the descriptives of var2 and var3
datasummary(var2+var3~Mean+SD+N, data=df)
#htis returns a long column of the number of entries of each value of var1; I would just like the number 26 here and combine it with the above
datasummary(var1~length, data=df)
datasummary()
中的混合因子和数字变量有点棘手。这里有两个选项。
第一种方法是用 output="data.frame"
创建第一个 table,并将其提供给第二个 table 的 add_rows
参数,插入“空”根据需要对齐两个 tables:
library(modelsummary)
var1<-rep(LETTERS[1:5], 5)
var2<-rep(LETTERS[8:12], 5)
var3<-rnorm(length(var1), mean=50, sd=10)
var4<-rnorm(length(var1), mean=10, sd=5)
df<-data.frame(var1, var2, var3, var4)
# function to insert empty columns
empty <- function(...) ""
ar <- datasummary(var1 + var2 ~ empty + empty + N,
data = df,
output = "data.frame")
datasummary(var3 + var4 ~ Heading("") * empty + Mean + SD + N,
data = df,
add_rows = ar)
Mean | SD | N | ||
---|---|---|---|---|
var3 | 52.66 | 9.35 | 25 | |
var4 | 9.21 | 5.25 | 25 | |
var1 | A | 5 | ||
B | 5 | |||
C | 5 | |||
D | 5 | |||
E | 5 | |||
var2 | H | 5 | ||
I | 5 | |||
J | 5 | |||
K | 5 | |||
L | 5 |
第二种方法是使用带有 ~1
作为公式参数的 datasummary_balance
模板函数。这当然不太灵活,但它适用于简单的情况:
datasummary_balance(~ 1, data = df)
Mean | Std. Dev. | ||
---|---|---|---|
var3 | 52.7 | 9.4 | |
var4 | 9.2 | 5.2 | |
N | Pct. | ||
var1 | A | 5 | 20.0 |
B | 5 | 20.0 | |
C | 5 | 20.0 | |
D | 5 | 20.0 | |
E | 5 | 20.0 | |
var2 | H | 5 | 20.0 |
I | 5 | 20.0 | |
J | 5 | 20.0 | |
K | 5 | 20.0 | |
L | 5 | 20.0 |
基于add_row
(https://vincentarelbundock.github.io/modelsummary/articles/datasummary.html#add_rows)
new_row <- data.frame('var1',
"-",
"-",
length(unique((var1))))
datasummary(var2+var3~Mean+SD+N, data=df,
add_rows = new_row)