for(i in 1:32)
{
columns <- data.frame(names(data_anova_tr[i]))
bartletsrez <- (bartlett.test(data_anova_tr[,i]~data_anova_tr$Treatment_str))
bart_pval <-cbind(data.frame(bartletsrez$p.value),columns)
}
我要在此处运行的for循环仅保存最后一列中的值(bartlett测试p val的结果)。我如何确保它记录了每个单个值([i] val)。
答案 0 :(得分:2)
@camille指出,您应该增加bart_pval
而不是在每次迭代时重新分配它。
因此,像这样修改您的代码应该可以解决您的问题:
bart_pval <- NULL
for(i in 1:32)
{
columns <- data.frame(names(data_anova_tr[i]))
bartletsrez <- (bartlett.test(data_anova_tr[,i]~data_anova_tr$Treatment_str))
bart_pval <-cbind(bart_pval,data.frame(bartletsrez$p.value),columns)
}
答案 1 :(得分:0)
您不需要循环。这样的事情应该起作用:
cols <- colnames(data_anova)[1:32] # You only need [1:32] if there are more than 32 cols
pval <- sapply(1:32, function(i) bartlett.test(data_anova_tr[,i]~data_anova_tr$Treatment_str)$p.value)
bart_pval <- data.frame(cols, pval)