Вызов заголовка в цикле for - PullRequest
1 голос
/ 28 марта 2012

Я написал быстрый цикл for, чтобы сделать серию графиков NQQ в R. Каждый график соответствует одному столбцу фрейма данных. Я хотел бы назвать имена заголовков, чтобы я мог называть графики, используя столбцы, которым они соответствуют.

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 ]

2 голосов
/ 28 марта 2012
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 голосов
/ 28 марта 2012

Если я правильно понимаю ваш вопрос, используйте функцию 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 голос
/ 28 марта 2012

Если я последую,

names(data.c)[i] вместо data.c[1, i]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...