R中未使用的参数和无效的下标类型列表错误

时间:2012-11-07 05:25:37

标签: r statistics

我正在努力完成任务,我希望你的意见。 注意:这是一个家庭作业,但当我试图添加标签时,它说不要添加它.. 我不想要生成的代码,只是关于如何使其工作的建议:)

所以,我有一个t.test函数:

    my.t.test <- function(x,s1,s2){
        x1 <- x[s1]
        x2 <- x[s2]
        x1 <- as.numeric(x1)
        x2 <- as.numeric(x2)
        t.out <- t.test(x1,x2,alternative="two.sided",var.equal=T)
out <- as.numeric(t.out$p.value)
        return(out)
    }

一个名为data的矩阵30cols x 12k行和一个包含col名称和名为dataAnn

列的数据的注释文件

dataAnn第一列包含与data中的样本(或cols)对应的M(男性)或F(女性)列表(遵循dataAnn中的相同顺序),我必须运行t.test比较两个样本并得到p值

当我打电话

raw.pValue <- apply(data,1,my.t.test,s1=dataAnn[,1]=="M",s2=dataAnn[,1]=="F")

我收到错误

Error in t.test(x1, x2, alternative = "two.sided", var.equal = T) : 
  unused argument(s) (alternative = "two.sided", var.equal = T)
我甚至尝试使用

raw.pValue <- apply(data,1,my.t.test,s1=unlist(data[,1:18]),s2=unlist(data[,19:30]))

划分我要比较的cols但在这种情况下我得到错误

Error in x[s1] : invalid subscript type 'list'

我一直在网上看,我明白第二个错误是由指数列表引起的......但这并没有真正为我澄清...... 任何输入将不胜感激!!

1 个答案:

答案 0 :(得分:1)

您已覆盖t.test功能。尝试将其称为my.t.test,或者当您想要调用原始版本时使用stats::t.test(这会调用stats命名空间中的那个)。请记住,当您覆盖一个函数时,您需要从工作区rm它,然后才能使用原始函数而不指定名称空间。