1

尝试获取包 Expss 以从集合中生成均值表(以类似于多响应表的方式,您输入集合中所有变量共有的前缀)。

这是我在下面尝试解决此问题的尝试,但是此脚本会生成一个带有空白输出的表格。有没有办法做到这一点?

library(expss)
#generate dummy data
q8_1<-rnorm(30,2,2)
q8_2<-rnorm(30,2,1)
df<-data.frame(q8_1,q8_2)

#Use regex to identify variables with Q8 prefix and then list
varssmeanio<-names(df[grep("^Q8", names(df))])
as.list(varssmeanio)
variolistio = calc(data, as.list(varssmeanio))

df %>%
tab_cells(variolistio) %>%
tab_stat_mean(label = "")  %>%
tab_pivot()
4

2 回答 2

2

这将起作用

varssmeanio<-df[grep("[Q8]", names(df))]

df %>%
  tab_cells(varssmeanio) %>%
  tab_stat_mean(label = "")  %>%
  tab_pivot()

输出表

 |      | #Total |
 | ---- | ------ |
 | q8_1 |    1.8 |
 | q8_2 |    1.6 |
于 2020-04-17T13:58:07.200 回答
0

变量选择有特殊功能。?vars您可以通过在控制台中键入来查找有关它们的帮助。其中之一是..p- 它使用 perl 风格的正则表达式选择变量。所以我们有:

library(expss)
#generate dummy data
q8_1<-rnorm(30,2,2)
q8_2<-rnorm(30,2,1)
df<-data.frame(q8_1,q8_2)

df %>%
    tab_cells(..p("^q8")) %>%   # 'p' means 'perl' 
    tab_stat_mean(label = "")  %>%
    tab_pivot()
于 2020-04-17T19:00:55.493 回答