使用CBCgrps包twogrps函数遇对象未找到错误及空表问题
解决twogrps函数的两个问题:变量未找到与空表结果
1. 解决“object 'condition' not found”错误
twogrps函数的group参数(第二个位置参数)需要传入字符型的列名,而非直接裸写变量名。你之前直接写condition,R会在全局环境中寻找名为condition的对象,而非从df数据框中提取列,因此报错。
正确写法是给列名加引号,同时明确参数名(或确保位置正确):
twogrps(df, group = "condition", varlist = "sum_variable", ...)
2. 解决加引号后返回空表的问题
空表通常由以下两个参数设置导致:
- ExtractP = 0.05:该参数会仅保留p值小于0.05的结果。如果两组
sum_variable的差异不显著(p≥0.05),就会返回空表。建议将其设为1,展示所有结果:ExtractP = 1 - ShowStatistic = F:该参数设置为
FALSE会隐藏统计量,可能导致输出看起来为空。建议改为ShowStatistic = TRUE
另外,将分组变量转换为因子型更符合分组逻辑,也能避免潜在问题:
df$condition <- factor(df$condition, levels = c(1,2), labels = c("组1", "组2"))
完整可运行代码
# 加载数据 df <- structure(list(condition = c(2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1), sum_variable = c(9, 6, 13, 3, 4, 3, 12, 2, 7, 8, 7, 4, 5, 10, 2, 5, 4, NA, 14, 9, 2, 5, 7, 3, NA, 3, 5, 7, 3, 8, 3, 3, 4, 8, 10, 9, 5, 7, 8, 4, 9, NA, 10, 14, 10, 3, 4, 10, 3, NA, 5, 3, 4, 4, NA, 5, 4, 6, 6, 9, 6, 2, 3, NA, 4, NA, 2, 2, 6, 5, 5, 3, 5, NA, 4, 4)), row.names = c(NA, -76L), class = c("tbl_df", "tbl", "data.frame")) # 转换分组变量为因子 df$condition <- factor(df$condition) # 加载包 library(CBCgrps) # 运行修正后的代码 twogrps(df, group = "condition", varlist = "sum_variable", p.rd = 3, skewvar=NULL, norm.rd = 2, sk.rd = 2, tabNA = "no", cat.rd = 0, pnormtest = 0.05, maxfactorlevels = 30, minfactorlevels = 10, sim = FALSE, workspace = 2e+05, ShowStatistic = TRUE, ExtractP = 1)
运行上述代码后,会输出包含两组描述性统计和差异检验结果的表格,不会再返回空表。
内容的提问来源于stack exchange,提问作者Espejito
相关产品推荐
相关产品推荐

