如何编写 Cramer-Von Mises p 值循环?
How to write Cramer-Von Mises p-values loop?
我有一个名为 matrix_1
的矩阵:
c1 c2 c3 c4 c5
R1 27 38 94 40 4
R2 69 16 85 2 15
R3 30 35 64 95 6
R4 20 33 77 98 55
R5 20 44 60 33 89
R6 12 88 87 44 38
我想 运行 循环中的双样本 Cramer-Von Mises 检验 (cvm_test()) 以将每列的分布与向量 vector_a
进行比较.我希望函数只是 return p 值。
我正在尝试这个:
library(twosamples)
sapply(1:ncol(matrix_1), function(i) cvm_test(as.vector(matrix_1[,1:i]), vector_a)$cvm_test[2,])
但我收到错误结果:
Error in cvm_test(matrix_1, :
$ operator is invalid for atomic vectors
您可以使用 [[2]] 获取 p 值,例如
sapply(1:ncol(matrix_1), function(i) cvm_test(as.vector(matrix_1[,1:i]), vector_a)[[2]]) #just values as vector
或使用[2],例如
sapply(1:ncol(matrix_1), function(i) cvm_test(as.vector(matrix_1[,1:i]), vector_a)[2]) #named values as vector
在手册中,您可以读到“输出是一个长度为 2 的向量,其顺序为测试统计和 p 值”。
我有一个名为 matrix_1
的矩阵:
c1 c2 c3 c4 c5
R1 27 38 94 40 4
R2 69 16 85 2 15
R3 30 35 64 95 6
R4 20 33 77 98 55
R5 20 44 60 33 89
R6 12 88 87 44 38
我想 运行 循环中的双样本 Cramer-Von Mises 检验 (cvm_test()) 以将每列的分布与向量 vector_a
进行比较.我希望函数只是 return p 值。
我正在尝试这个:
library(twosamples)
sapply(1:ncol(matrix_1), function(i) cvm_test(as.vector(matrix_1[,1:i]), vector_a)$cvm_test[2,])
但我收到错误结果:
Error in cvm_test(matrix_1, :
$ operator is invalid for atomic vectors
您可以使用 [[2]] 获取 p 值,例如
sapply(1:ncol(matrix_1), function(i) cvm_test(as.vector(matrix_1[,1:i]), vector_a)[[2]]) #just values as vector
或使用[2],例如
sapply(1:ncol(matrix_1), function(i) cvm_test(as.vector(matrix_1[,1:i]), vector_a)[2]) #named values as vector
在手册中,您可以读到“输出是一个长度为 2 的向量,其顺序为测试统计和 p 值”。