首页 > 解决方案 > 如何在用户定义的函数中从数据集中对列进行子集化?

问题描述

我正在尝试编写一个函数来计算某些变量的 chi-sq p 值。但是,我的函数保留错误“ ( [.defaulttbl, x, 1:2) 中的错误:下标越界”和 1: Unknown or uninitialized column: var1
我发现错误来自无法找到的 data$var1。在自定义函数中如何使用此特定列?

do_chisq_test=function(data,var1=character(),var2=character(),gender){  
  if(gender=="1"){  
    cat("this is fro male comparison")
    return(sapply(1:levels, function(x)chisq.test(table(data$var1,data$var2)[x,1:2])$p.val))<br/>
  }else{
    tbl=table(data$var1,data$var2)
    cat("this is for female comparison")
    return(sapply(1:levels, function(x)chisq.test(tbl[x,3:4])$p.val))
  }
}
do_chisq_test(table.dat,"edu_level_BL","group","1")

标签: rfunctionsubset

解决方案


推荐阅读