【发布时间】:2018-04-04 14:21:13
【问题描述】:
我正在尝试使用 tableone 包生成表一摘要,其中数据输入是使用调查包制作的调查设计对象。根据 tableone 文档,这应该是可能的,事实上,它适用于我同事的工作区。 Tableone 能够处理连续变量,但不能处理因子。下面是一个可重现的例子
library(survey, tableone)
age<- c(55,66,77,33,44)
gender<-c("Male","Male","Female","Male","Female")
weights<-c(2.3,1.0,3.0,2.3,1.0)
df<- data.frame(age,gender,weights)
svy <- svydesign(id = ~0, data = df, weights=~weights)
t1 <- svyCreateTableOne(data = svy, vars=c("age", "gender"))
我收到一条错误消息:“Summary.factor(c(3L, 1L), na.rm = TRUE) 中的错误: ‘sum’ 对因子没有意义”
无论我是否将“性别”列保留为字符,或者是否在创建 svy1 之前将其更改为一个因子,这种情况都会持续存在。
我在 RStudio 1.1.442 上运行 R 版本 3.4.4。
有人遇到此问题或有解决此问题的建议吗?谢谢!
【问题讨论】:
-
在您的
t1 <- svyCreateTableOne(data = svy, vars=c("age", "gender"))中输入t1 <- svyCreateTableOne(data = svy, vars=c("age", "gender"), factorVars = "gender")是否可以解决问题? -
很遗憾没有
-
问题一定出在
svy对象中。CreateTableOne(vars=c("age","gender"),data=df)适用于分类变量和定量变量。 -
这真的很奇怪,因为如果我使用 svytable 函数,它可以正常工作,这向我暗示 svy 对象没问题并且理解性别是一个分类:
svytable(~gender, svy)