2012-03-27 72 views
0

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

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]]) 
} 

在其当前形式中,此代码调用我的数据框中的第一行数据。我怎样才能调用标题行? 在此先感谢您的帮助。

回答

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]]) 
} 
+0

优秀!杰夫,非常感谢。 – Margaret 2012-03-29 00:14:42

1

如果我跟着,

names(data.c)[i]而不是data.c[1, i]

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]]) 
    }