#r
#r
Вопрос:
Я пытаюсь проверить корреляцию между столбцом значений разряда и 92 столбцами независимых переменных. Прямо сейчас я пытаюсь использовать цикл for и функцию cortest (), чтобы увидеть, какой столбец возвращает наибольший коэффициент корреляции. Вот мой код на данный момент:
csv1 <-
read.csv("Z:/hhm/CDOT_Western_CO_Flow_Equations/Regional_Equations/OLS/wrm_work/Table1Values.csv",
header = TRUE, sep = ",")
test1 <- cor.test(csv1$Q2, csv1$Outlet_Elevation, method = "kendall")
y_cols <- csv1[-c(1:49)] ##Isolate the indep variables I want to check for correlation
Q2 <- csv1$Q2 ##Isolate discharge values from master csv
test_frame <- data.frame(Q2,y_cols) ##Combine discharge column and variable columns
result <- as.data.frame(matrix(NA, ncol = 1, nrow = length(y_cols))) ##Create matrix for results
for (i in 1:length(y_cols)) {
test2 <- cor.test(test_frame$Q2, test_frame[,i], method = "kendall")
result[i] <- test2[["tau"]]
}
Я чувствую, что я довольно близок, но я не могу избавиться от этой конкретной ошибки:
«Ошибка в [<-.data.frame
( *tmp*
, i, значение = NULL) :
новые столбцы оставят отверстия после существующих столбцов »
Я полагаю, что эта ошибка связана с тем, что после первого кортеста, когда он начинает цикл, он не может сохранить результаты последнего теста? Я пробовал много ответов из других вопросов о переполнении стека с тем же кодом ошибки, но примеры для очень разных кодов.test_frame
Есть идеи о том, в чем проблема с моим кодом? Спасибо!
Комментарии:
1. Пожалуйста, предоставьте некоторые данные, чтобы сделать код воспроизводимым.
2. Q2 Outlet_Elevation PERIM ELEVMIN LEVEMAX СРЕДНЕЕ ЗНАЧЕНИЕ РЕЛЬЕФА 38.4 3171.7 39763.7 3171.66 3834.97 663.32 3427.78 382.0 2665.4 272506.02 2665.4 3942.09 1276.69 3101.29 189.4 2686.69 124212.35 2686.32 3774.89 1088.57 2985.03 Это небольшой раздел «test_frame». Спасибо!
3. Решено! «‘результат <- as.data.frame(матрица (NA, ncol = 3, nrow = ncol(test_frame))) имена столбцов (результат) <- c («tau», «x_data», «y_data») для (i в 1: ncol(y_cols)) { test2 <- cor.test(test_frame $ Q2, test_frame[,i], метод = «kendall») tau <- test2 $ оценка результата [i,1] <- tau результат[i,2] <- colnames (test_frame)[1] результат[i,3]<- colnames(test_frame)[i 1] }»‘