Я пытаюсь создать цикл для прохождения и выполнения корреляции (и в будущем частичной корреляции), используя функцию ppcor
для переменных, хранящихся в кадре данных.Первая переменная (A) останется неизменной для всех корреляций, а вторая переменная (B) будет следующей переменной в следующем столбце в моем фрейме данных.У меня около 1000 переменных.
В качестве примера я приведу ниже приведенный ниже набор данных mtcars, так как он находится в том же формате, что и мои данные.
Мне удалось успешно завершить операцию, когда она выполнялась вручную с использованием cbind для связывания 2 столбцов (2 представляющие интерес переменные) перед запуском ppcor
в массиве ("tmp_df").Затем я смог связать выходные данные операции корреляции («mpg_cycl»), («mpg_disp») в один объект.Однако я не могу заставить эту операцию работать в цикле.Любые идеи, пожалуйста?
library("MASS")
install.packages("ppcor")
library("ppcor")
mtcars_df <- as.data.frame(mtcars)
tmp_df = cbind(mtcars_df$mpg, mtcars_df$cycl)
mpg_cycl <- pcor(as.matrix(tmp_df), method = 'spearman')
tmp_df1= cbind(mtcars_df$mpg, mtcars_df$disp)
mpg_disp <- pcor(as.matrix(tmp_df1), method = 'spearman')
combined_table <- do.call(cbind, lapply(list("mpg_cycl" = mpg_cycl,
mpg_disp" = mpg_disp), as.data.frame, USE.NAMES = TRUE))
пытается выполнить цикл выше операции ## (исправлено после комментариев последнего рецензента:
for (i in mtcars_df[2:7]){
tmp_df = (cbind(i, mtcars_df$mpg)
i <- pcor(as.matrix(tmp_df), method = 'spearman')
write.csv(i, file = paste0("MyDataOutput",i[1],".csv")
}
Я ожидал, что цикл выведет дварезультатов корреляций в CSV-файл MyDataOutput. Но при этом появляется сообщение об ошибке, я думал, что я был в правильном месте?:
Ошибка: неожиданный символ в: "tmp_df = (cbind (i, mtcars_df $ mpg)"i "
Даже добавление фигурной скобки в конце не решает проблему, поэтому я пропустил это, поскольку появилось еще одно сообщение об ошибке '}'