R 中散点图矩阵的标签

Labels for Scatterplot Matrix in R

我是 R 的新手,所以在调查我对 problem-solving 的不雅尝试时请考虑这一点。

我使用的数据来自行为心理学研究。我有一个数据框,包含来自 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"

现在,我需要做包含一个参数的双变量散点图,但每个任务,所以我想做一个 3x3 散点图矩阵(例如:a.DelayedNMatchingFacesa.MorphFacesa.verificFaces).该矩阵将保存为根据参数和刺激类型命名的 png(例如 "a_H.png" 如果它是 house-stimuli 的参数 a)。我构建了一个 for-loop 遍历列并构建了散点图,其中包含来自列 i、列 i+12 和列 i+24 的变量矩阵,因为每个参数每 12 个出现一次步骤 header 行。循环如下所示:

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.labels 的参数,我已经看到了,但我只是想不通如何用它命名每个图,因为索引 col_ixij 是 运行 个数字,不能在 var.labels 参数中列出所有三个。

有人能帮忙吗?非常感谢您的建议(顺便说一句,如果它们包含不直接链接到变量标签的建议)。如果我的解释不专业或没有正确使用特定术语,我深表歉意;希望一切都是可以理解的。如果需要更多信息,请告诉我,然后我会添加。

非常感谢大家。

您可以只使用与 i j 和 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])

或任何确切的语法。我没有安装这个包,但这应该让你很接近。