Я новичок в R, поэтому, пожалуйста, подумайте об этом, исследуя мои, по-видимому, неистребимые попытки решения проблем.Этикетки для матрицы Scatterplot в R
Данные, которые я использую, основаны на поведенческом психологическом исследовании. У меня есть кадр данных, содержащий 6 различных параметров (называемых mu, sigma, tau, v, a, Ter) из трех разных поведенческих задач. Кроме того, есть 2 типа стимулов, фотографии лица и дома. colnames(plot_data)
дает следующее:
[1] "subject" "v.DelayedNMatchingFaces"
[3] "a.DelayedNMatchingFaces" "Ter.DelayedNMatchingFaces"
[5] "mu.DelayedNMatchingFaces" "sigma.DelayedNMatchingFaces"
[7] "tau.DelayedNMatchingFaces" "v.DelayedNMatchingHouses"
[9] "a.DelayedNMatchingHouses" "Ter.DelayedNMatchingHouses"
[11] "mu.DelayedNMatchingHouses" "sigma.DelayedNMatchingHouses"
[13] "tau.DelayedNMatchingHouses" "v.MorphFaces"
[15] "a.MorphFaces" "Ter.MorphFaces"
[17] "mu.MorphFaces" "sigma.MorphFaces"
[19] "tau.MorphFaces" "v.MorphHouses"
[21] "a.MorphHouses" "Ter.MorphHouses"
[23] "mu.MorphHouses" "sigma.MorphHouses"
[25] "tau.MorphHouses" "v.verificFaces"
[27] "a.verificFaces" "Ter.verificFaces"
[29] "mu.verificFaces" "sigma.verificFaces"
[31] "tau.verificFaces" "v.verificHouses"
[33] "a.verificHouses" "Ter.verificHouses"
[35] "mu.verificHouses" "sigma.verificHouses"
[37] "tau.verificHouses"
Теперь мне нужно сделать bivaraite диаграммы рассеяния, которые содержат один единственный параметр, но каждой задачи, поэтому я хочу, чтобы сделать матрицу 3x3 диаграмму рассеяния (например .: a.DelayedNMatchingFaces
, a.MorphFaces
, a.verificFaces
). Эта матрица будет сохранена в png, которая называется в соответствии с параметром и типом стимула (например, «a_H.png», если это параметр a для домашних стимулов). Я построил цикл for, который проходит через столбцы и строит диаграмму рассеяния матрицы переменной из столбца i
, столбец i+12
и столбец i+24
, поскольку каждый параметр появляется каждые 12-й шаг в строке заголовка. Цикл выглядит следующим образом:
for (col_ix in 2:13) {
i <- col_ix + 12
j <- col_ix + 24
param_col <- colnames(plot_data)[col_ix]
param <- strsplit(param_col,"[.]")[[1]][1]
if (grepl("Faces", colnames(plot_data)[col_ix]) == TRUE) {
stim_col <- "F"
}
else {
stim_col <- "H"
}
png(paste(param, stim_col, ".png", sep="_"))
scatterplotMatrix(~ plot_data[ ,col_ix] + plot_data[ ,i] + plot_data[ ,j] , span=0.7, data= plot_data)
dev.off()
}
Это похоже на работу, хотя я признаю, что должно быть тысяча способов сделать это более эффективно, но эй, это моя первая петля R, на самом деле. Проблема заключается в следующем: когда я сохраняю матрицу диаграммы рассеяния в виде файла png, графики, которые видны в png, помечены в соответствии с источником данных, указанным в формуле, поэтому в этом случае это будет plot_data[col_ix]
, plot_data[i]
и plot_data[j]
(Смотри ниже). Однако предполагается, что графики должны быть помечены в соответствии с именами столбцов, поэтому, когда вы смотрите на них, вы можете увидеть, какая переменная отображается и с какой графикой отображается. Существует аргумент, который называется var.label
s, я уже это видел, но я просто не могу понять, как его назвать на каждом графике, потому что индексы col_ix
, i
и j
являются номерами и не могут быть указаны все три var.labels
аргумент.
Может ли кто-нибудь помочь? Предложения приветствуются (также, кстати, если они содержат советы, которые напрямую не связаны с переменными метками). Приносим извинения, если мои объяснения были непрофессиональными или не имели правильного использования конкретных терминов; надеюсь, все было понятно. Если потребуется больше информации, пожалуйста, скажите мне, тогда я добавлю.
Огромное спасибо вам всем.
Взгляните на 'xlab' и' ylab'. Вы можете автоматизировать изменения меток в цикле с чем-то вроде: 'ylab = names (plot_data) [j]'. Возможно, стоит поиграть с первым столбцом, чтобы получить материал, который смотрит прямо перед запуском цикла. – lmo
Спасибо! Но это команды для обозначения оси x и y графика, верно? Я пытаюсь обозначить диагнозовые графики в матрице png. На изображении отображается имя источника данных.Поскольку этот источник - 'plot_data [, col_ix]', 'plot_data [, i]' и 'plot_data [, j]', это как раз текст, появляющийся на изображениях, но я хотел бы, чтобы появилось имя переменной. «var.labels» кажется правильным выбором, но он не позволяет больше 1 значения (или списка или вектора, насколько я мог видеть) в качестве входных данных. Но, может быть, я неправильно понял ваш комментарий или слишком зациклен на опции «var.labels»? – Yagaba
Извините, я неправильно понял ваш вопрос. Обычно лучше держать его максимально коротким и простым, потому что люди быстро сканируют вопрос. См. Мою попытку ответа. – lmo