正如标题所示,我想在 R 中编写一个 for 循环,将一个变量作为给定 (a),创建第二个 (b) 的 10 种不同排列,计算相关测试并存储输出(相关估计和置信区间)在数据框或矩阵中。因此,该矩阵应包括三列(估计、下、上)和 10 行。
之后,我想绘制输出,使用 ggplot 将每个相关测试显示为 a
geom_point() + geom_linerange(lower, upper),参考线位于yintercept=0。
a <- 1:100
b <- c(rep(0,100))
data <- matrix(ncol = 3, nrow = 10)
for (i in 1:10) {
b[i] <- sample(100, replace = FALSE)
temp <- cor.test(a,b)
correlation <- as.numeric(temp$estimate)
lower <- as.numeric(temp$conf.int[1])
upper <- as.numeric(temp$conf.int[2])
data[i,] <- c(correlation[i], lower[i], upper[i])
print(data)
#ggplot(data, aes(x=paste0("correlation_",[i]), y=correlation)) +
#geom_point(color="red") +
#geom_linerange(ymin=lower, ymax=upper, color="red") +
#geom_hline(yintercept = 0, linetype="dashed")
}
由于某种原因,这是行不通的。我猜这与我尝试将相关测试结果的输出存储在data. 现在的 for 循环创建了 10 个矩阵,其中第一个矩阵包含所有输出,然后从第二个开始逐渐下降一行,直到除第一个之外的所有矩阵都是NA. 另外,我不确定这个ggplot()电话会像现在这样工作。
有人可以帮忙吗?