我試圖在指定範圍內的兩個數據列表之間找到最佳關聯(即最高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