1

我正在为一项任务而苦苦挣扎,我想听听你的意见。 注意:这是一个家庭作业,但是当我尝试添加它说不要添加它的标签时。 我不想要生成的代码,只是关于如何让它工作的建议:)

所以,我有一个 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)
    }

一个 30cols x 12k 行的矩阵data和一个注释文件,其中包含列名称和列上的数据dataAnn

dataAnn第一列包含 M(男性)或 F(女性)的列表,对应于样本(或 cols)data(遵循与中相同的顺序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]))

划分我想比较的列,但在这种情况下我得到了错误

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

我一直在网上查找,我知道第二个错误是由索引作为列表引起的......但这并没有真正为我澄清......任何输入将不胜感激!

4

1 回答 1

1

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

于 2012-11-07T09:33:26.257 回答