簡體   English   中英

R中散點圖矩陣的標簽

[英]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.DelayedNMatchingFacesa.MorphFacesa.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_ixij是運行數字,不能列出所有三個在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM