【发布时间】:2016-05-04 13:48:33
【问题描述】:
我想将测试结果存储在矩阵或 data.frame 内的 R for 循环内,其中包含(在本例中)两列,但行数不确定,因为行数取决于if 语句。
我正在比较一周中几天的计数,然后进行成对比较。这是现在的代码:
week <- c(Mon = 401, Tue = 199, Wed = 187, Thur = 202, Fri = 240, Sat = 212, Sun = 244)
names(week) <- NULL
observed <- week
for(i in 1:(length(observed) - 1)){
for(j in 1:(length(observed))){
test <- chisq.test(c(observed[i], observed[j]), p = rep(1/2, 2))
if(test$p.value < 0.002380952) print(c(i,j))
}
}
现在的输出是:
[1] 1 2
[1] 1 3
[1] 1 4
[1] 1 5
[1] 1 6
[1] 1 7
[1] 2 1
[1] 3 1
[1] 4 1
[1] 5 1
[1] 6 1
但是根据函数中if 语句的结果,它可能会更长。此外,我想最终消除排列。
寻找在循环中启动空矩阵(或data.frame)的方法,他们似乎提前合并了维度,例如days <- matrix(NA, nrow = length(observed)^2, ncol = 2)。
我希望有一个不确定的行数。
【问题讨论】: