我有一个包含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.
有人可以帮助我吗?
答案 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)