R

时间:2016-05-17 15:43:48

标签: r plot labels

我是R的新手,所以在调查我可能没有尝试解决问题时,请考虑这个问题。

我使用的数据来自行为心理学研究。我有一个数据框,包含6个不同的参数(称为mu,sigma,tau,v,a,Ter),每个参数来自3个不同的行为任务。此外,还有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.MorphFaces,{{1} })。该矩阵将保存到根据参数和刺激类型命名的png(例如,如果它是房屋刺激的参数a,则为“a_H.png”)。我已经构建了一个遍历列的for循环,并构建了散列图,该变量是来自列a.verificFaces,列i和列i+12的变量矩阵,因为每个参数都出现在第12步标题行。循环如下:

i+24

这似乎有效,虽然我承认必须有一千种方法才能更有效地完成它,但是,嘿,这实际上是我的第一个R循环。问题是:当我将散点图矩阵保存为png文件时,png中可见的图是根据公式中指示的数据源标记的,因此在这种情况下,它将是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() } plot_data[col_ix]plot_data[i](见下文)。但是,这些图表应根据列名称进行标记,因此当您查看它们时,您可以看到显示哪个变量并使用哪个变量绘制。有一个被称为plot_data[j]的论证,我已经看到了,但我无法弄清楚如何为每个情节命名,因为索引var.labelcol_ixi正在运行数字,并且不能全部三个都列在j参数中。

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

非常感谢大家。

1 个答案:

答案 0 :(得分:0)

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

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