2 g mumuxi G_mumuxi 于 2016.05.09 16:24 提问

R语言,想用f-test检验方差,矩阵每行怎么用var.test(x, y)???谢谢指导~

f-test检验方差,即var.test(x,y),我会xy向量参,不会放矩阵。。。
感觉函数可能把两个矩阵全部数据对比了,我只是想一行行进行。

具体说就是如下矩阵:

原本是两个样本观测值矩阵,一个6乘7,一个6乘5,我合并了。
(开始未合并,想依次取两个矩阵的对应行做var.test(),可是,我不会。。。)

于是,合。然而合了也不会。。。
现在问题是,对每一行的1到7,8到12,依次进行var.test,

test_matrix
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 1 3 45 68 23 23 1 34 32 1 34 32
[2,] 34 34 5 66 43 77 3 34 1 3 34 12
[3,] 32 1 3 45 68 23 45 5 3 45 5 12
[4,] 1 3 45 68 23 23 68 66 45 68 66 23
[5,] 34 34 5 66 43 77 23 43 68 23 43 46
[6,] 32 12 12 23 46 56 23 77 23 23 77 56

我是这么写的,

F_result <- apply(test_matrix, 1, var.test(test_matrix[1:7], test_matrix[8:12]))
Error in match.fun(FUN) :
'var.test(test_matrix[1:7], test_matrix[8:12])'不是函数,也不是字符,也不是符號
应该出6个结果的,然后把好结果的行挑出来,构成新矩阵。

试了好几种了,都不对。(格式不太好,见谅)

1个回答

qq423399099
qq423399099   Ds   Rxr 2016.05.09 17:50
已采纳

试试这样:

 apply(test_matrix, 1, function(x) var.test(x = x[1:8], y = x[9:12]))
G_mumuxi
G_mumuxi 成功索引出来p-value了~是output_result[[某元素]][[3]],class是"numeric"。多谢!
一年多之前 回复
G_mumuxi
G_mumuxi 回复小灸舞: 额,我试试
一年多之前 回复
qq423399099
qq423399099 回复G木木夕: 取出list的元素要用两层中括号,比如你取第一个元素xx[[1]]
一年多之前 回复
G_mumuxi
G_mumuxi 谢谢您!结果完全符合想象,,,另外,您知道如何好结果的行挑出来,构成新矩阵吗?结果我class(output_result)了,是list,元素个数是行数,但是每个元素像是文本文件,然后我对这个list索引成这样output_result[1][1][1]还是list,想根据结果里面的p值小于0.01把对应矩阵行出来,你有好的办法吗?初学R语言,不太懂,添麻烦了~
一年多之前 回复
G_mumuxi
G_mumuxi 回复G木木夕: 谢谢您!结果完全符合想象,,,另外,您知道如何好结果的行挑出来,构成新矩阵吗?结果我class(output_result)了,是list,元素个数是行数,但是每个元素像是文本文件,然后我对这个list索引成这样output_result[1][1][1]还是list,想根据结果里面的p值小于0.01把对应矩阵行出来,你有好的办法吗?初学R语言,不太懂,添麻烦了~
一年多之前 回复
G_mumuxi
G_mumuxi 好厉害。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!