在for循环中调用标头

时间:2012-03-27 21:17:03

标签: r

我写了一个快速for循环来在R中制作一系列NQQ图。每个图对应一个数据帧的一列。我想调用标题名称,以便我可以使用它们对应的列来命名图。

par(mfrow=c(1,8))
for (i in 1:8){
qqnorm(data.c[[i]],main=paste("C",data.c[1,i],sep=""))
qqline(data.c[[i]])
}

在当前形式中,此代码调用我的数据帧中的第一行数据。如何让它调用标题行? 在此先感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,请使用colnames()函数获取列的名称,而不是第一行。

par(mfrow=c(1,8))
for (i in 1:8){
  qqnorm(data.c[[i]],main=paste("C",colnames(data.c[i]),sep=""))
  qqline(data.c[[i]])
}

答案 1 :(得分:2)

par(mfrow=c(1,8))
for (i in 1:8){
qqnorm(data.c[[i]],main=paste("C",names(data.c)[i], sep=""))
qqline(data.c[[i]])
}

另一种可能更自我记录的方法是循环遍历列名称:

for (colnam in names(data.c)[1:8] ){
    qqnorm(data.c[[colnam]], main=paste("C",colnam, sep=""))
    qqline(data.c[[colnam]])
    }

答案 2 :(得分:1)

如果我关注,

names(data.c)[i]代替data.c[1, i]