如何在R中执行rowttest?

时间:2013-02-27 09:31:05

标签: r

我有一个包含4列和679行的数据框,我需要使用来自genefilter包的da函数rowttest执行ttest。想要列出两个第一列和另外两列。

A_R1   A_R2   B_R1    B_R2  
1       2       7      7
4       5       8      7.5
5       5       9      NA
6       5       10     NA
...

我使用了这段代码,但我不确定“fac”是什么意思。我以为是行数。

#t.test is the dataframe used
ttest2=na.omit(ttest)
rowttests(as.matrix(ttest2),fac=679,tstatOnly = FALSE)

我有这个错误:

Error in function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘rowttests’ for signature ‘"matrix", "numeric"’

Error in rowcoltt(x, factor(integer(ncol(x))), tstatOnly, 1L) : 
  Invalid argument 'x': must be a real matrix.

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

第二个参数是一个表示执行t检验的组(列)的因子。

> m=matrix(runif(80), 20)
> rowttests(m, factor(c("M", "M", "F", "F")))
      statistic           dm     p.value
1    1.15567467  0.297622456 0.367224496
2    0.81334422  0.328723537 0.501449912
....

答案 1 :(得分:1)

数据不能是整数矩阵!!!

<强> BEFORE

#x是INTEGERS的data.frame ...

x <- read.table("HFLF.txt", header=TRUE, row.names=1)
g <- c("HF","HF","LF","LF")   
results<- rowttests(x, factor(g))
  

(函数(classes,fdef,mtable)中的错误:无法找到   签名'“data.frame”的函数'rowttests'的继承方法,   “因子””

#尝试将x从数据帧转换为矩阵...

x <- as.matrix(read.table("HFLF.txt", header=TRUE, row.names=1))
g <- c("HF","HF","LF","LF")
results<- rowttests(x, factor(g))
  

rowcoltt(x,fac,tstatOnly,1L)出错:参数'x'无效:   必须是一个真正的矩阵。

<强> AFTER

#x是这里的REAL数字的数据帧(带小数位)......

x <- read.table("HFLF.txt", header=TRUE, row.names=1)
g <- c("HF","HF","LF","LF")
results<- rowttests(x, factor(g))
  

(函数(classes,fdef,mtable)中的错误:无法找到   签名'“data.frame”的函数'rowttests'的继承方法,   “因子””

#尝试将x从数据帧转换为矩阵...

results<- rowttests(as.matrix(x), factor(g))
head(results)   

我从“Joran”在这里发布的内容中得出结论: http://w3facility.org/question/conversion-of-data-frame-to-matrix-error/

答案 2 :(得分:0)

见?rowtests

  

rowttests(x,fac,tstatOnly = FALSE)x 数字矩阵和fac 因子   它编码要测试的分组

这里你给出一个矩阵和一个数字,你必须强制数字到一个因子。所以改变

rowttests(as.matrix(ttest2),fac=679,tstatOnly = FALSE)

rowttests(as.matrix(ttest2),fac=factor(679),tstatOnly = FALSE)