[英]Labels for Scatterplot Matrix in R
我是R的新手,因此在調查我大概單調的解決問題的嘗試時,請考慮這一點。
我使用的數據來自行為心理學研究。 我有一個數據框,其中包含來自3個不同行為任務的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
的參數,我已經知道了,但是我只是想不出如何命名每個圖,因為索引col_ix
, i
和j
是運行數字,不能列出所有三個在var.labels
參數中。
有人可以幫忙嗎? 建議是非常值得贊賞的(順便說一句,如果它們包含未直接鏈接到變量標簽的建議)。 如果我的解釋不專業或缺少正確使用特定術語的行為,我深表歉意。 希望一切都是可以理解的。 如果需要更多信息,請告訴我,然后我會添加。
非常感謝大家。
您可以僅使用與ij和col_ix關聯的名稱,如下所示:
plot_data[ , names(plot_data)[col_ix]] + plot_data[ ,names(plot_data)[i]]
+ plot_data[, names(plot_data)[j]]
這可能不會立即產生您想要的結果,但是您可以使用相同的方法來獲取var.labels的名稱:
var.labels= c(names(plot_data)[i], names(plot_data)[j])
或確切的語法是什么。 我沒有安裝此軟件包,但這應該可以使您更加接近。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.