我试图在指定范围内的两个数据列表之间找到最佳关联(即最高r平方值)(即找到具有最佳关联的'x'值范围与他们相应的'y'值)。基本上我正在寻找数据中的线性范围。这是我到目前为止有:查找两个数据向量之间的最佳关联
#Example data - actually have a much more complicated data set
x <- c(1,2,3,4,5,6,7,8,9)
y <- c(0.25,1.5,3,4,5,6,6.5,7,7.5)
data.range <- 0 #create a new variable which will contain the
r.sq <- 0
for (i in 1:length(x)) {
r.sq[i] <- round(cor(x[i:(i+5)], y[i:(i+5)],4)
data.range[i] <- paste(x[i], x[i+5], sep = " - ")
output <- data.frame(na.omit(cbind(data.range, r.sq)))
}
#Example read out
head(output)
data.range r.sq
1 - 6 0.9963
2 - 7 0.9906
3 - 8 0.9885
4 - 9 0.9839
在这里,我已经输出设置为给我含正在与相关的“Y”相关“X”数据范围内的数据框,以及COR( )值对应于'x'数据的范围。现在,我使用5点(因此是i + 5)来预测'x'和'y'之间的相关性,但最终我不想定义“5”,因为线性范围可能跨越6或8分。所以我想要做所有可能的'x'和'y'相关,并且产生具有相应的cor()值(r.sq)的数据范围(data.range)的列表。
data.range r.sq
1 - 4 0.9999
1 - 5 0.9808
1 - 6 0.9805
1 - 7 etc...
1 - 8
1 - 9
2 - 5
2 - 6
2 - 7
2 - 8
etc....
任何意见是值得欢迎的!
您已经在使用循环,为什么不对范围中的第二个值使用嵌套循环? – jwells
我觉得这就是解决方案,但我似乎无法让代码工作。我对R很新,你能介绍一下它的外观吗? – Dorton