R语言tbl_svysummary报错

R语言tbl_svysummary报错,是什么原因?

Error in .formula_list_to_named_list(x = fns, data = switch(class(x)[1],  : 
  argument "fns" is missing, with no default

```

以下答案由GPT-4.0Plus大模型与博主A努力中.......共同编写:
bl_svysummary()是tidyverse包中的一个函数,它可以为tbl_df类的数据框提供survey summary。但是在使用此函数时,我们可能会遇到以下错误:

Error in summarise_impl(tbl, ...) : 
  no variables in call match available variables to summarize

这个错误是指,我们传给tbl_svysummary()的数据框tbl并不包含该函数可以汇总的变量。此函数可以对以下类型的变量进行汇总:

  • 数值型:提供mean、sd、se、ci等
  • 因子型:提供频数和百分比
  • 计数型:提供频数和有效百分比
    所以,要解决这个错误,我们有两种方法:
  1. 选择tbl_svysummary()可以处理的变量类型
    我们应确保传给此函数的数据框中包含数值型、因子型或计数型的变量,而不是字符型等其他类型的变量。
  2. 自定义summarise()函数
    如果我们的数据框中仅包含tbl_svysummary()函数无法处理的变量类型,我们可以自己定义summarise()函数来进行汇总。
    例如,对于一个包含字符向量的tbl_df,我们可以这么写:
r
tbl %>% 
  summarise(
    var1 = paste(var1, collapse = ", "),  # use paste() to combine values
    freq = length(var1)  # calculate frequency
  )

这会对var1列中的字符型变量进行连接,并计算其频数,实现我们自己的汇总。
所以,要解决tbl_svysummary()报错,我们首先要确保提供包含它可处理的变量类型的数据,如果数据不符合要求,我们也可以自己定义summarise()来完成汇总。