Я пытаюсь создать аккуратный список значений корреляции, которые я затем хочу отсортировать. Однако, когда я пытаюсь создать этот список, я получаю список с корреляционными переменными, вставленными вокруг моего текста.
Я использую цикл for, основанный на двух условиях «если». Когда условие выполнено, я хочу добавить значение корреляции во фрейм данных. Если это не так, значение должно быть 0. Я попытался использовать rbind, чтобы добавить все строки вместе после выполнения одного из двух условий.
edit Я попытался добавить cbind (corl, i) в каждое из условий 'if', чтобы указать соответствующее значение индекса для каждого выхода корреляции, или 0, если условие if не выполнено , Это выдает ошибку «имена не совпадают с предыдущими именами». Кроме того, я попытался добавить cbind в конце цикла for (см. ##), но это также возвращает ошибку.
Однако я получаю предупреждение об ошибке, когда хочу связать значения корреляции с фиксированными значениями «0» (например, когда условие ложно).
Мой код в настоящее время выглядит следующим образом:
## correlation function
corr <- function(directory, threshold = 0) {
idFiles <- data.frame();
fileList <- dir(directory, full.names = TRUE);
listLength <- 1:length(fileList);
convert <- sprintf("%03d", listLength);
for (i in listLength) {
data <- read.csv(fileList[i]);
idFiles <- rbind(idFiles, data);
}
cases <- complete(direct, 1:length(fileList));
corl <- data.frame();
frame <- data.frame();
for (i in listLength) {
if (cases[i, 2] > threshold) {
monitor <- subset(idFiles, ID == i);
monitor <- na.omit(monitor);
corl <- cor(monitor["nitrate"], monitor["sulfate"]);
frame <- rbind(frame, corl);
}
else {
corl <- 0;
frame <- rbind(frame, corl);
}
}
##frame <- cbind.fill(frame, listLength);
frame <- as.matrix(frame);
print(frame);
}
Когда я сейчас запускаю функцию, вывод, как уже упоминалось, представляет собой список значений, но, увы, без чистого индекса. Текст корреляционной функции (нитрат и сульфат) окружает значение индекса и затрудняет интерпретацию таблицы. Также я не могу запустить функцию sort () для этой таблицы, чтобы отсортировать значения, например, из от высокого к низкому, на основе номера индекса.
Может ли кто-нибудь дать мне предложение о том, как получить аккуратный список с индексами для значений корреляции, которые можно отсортировать, например, по адресу: увеличивается до убывающих значений, сохраняя при этом ссылку на порядковый номер?
Заранее спасибо за любую помощь!