2012-07-03 4 views
0

я написал следующий скрипт для создания нескольких участок в цикле, который хорошо работает:R добавить легенда построить

stat <- list.files("D:/...", pattern = "met") 

par(mfrow = c(4, 4)) 
for (x in stat) { 
plot((assign(x, read.csv(x, head=TRUE, sep=""))),typ="l", col="red") 
} 

То, что я хотел бы достичь сейчас, чтобы добавить заголовок каждого графа рекурсивно в соответствии с имя файла, который читается.

Надежда это ясно,

Бест,

P.S. У меня также есть другое любопытство, но я оставлю это, возможно, после.

Спасибо.

ответ

5

Добавляет ли название (main) аргумент в plot делать то, что вы ищете?

plot((assign(x, read.csv(x, head=TRUE, sep=""))),typ="l", col="red", main=x) 

отредактирована для ФОС комментарий

вы можете использовать gsub для этого.

plot((assign(gsub('\\.txt', '', x), 
     read.csv(x, head=TRUE, sep=""))), 
    typ="l", 
    col="red", 
    main=gsub('\\.txt', '', x)) 

Тем не менее, конструкция назначения цикла, которую вы используете, опасна для привычки использовать. Обычно это делается путем чтения всех файлов в виде списка, а затем lapply через них или некоторых вариантов этой темы.

Вы можете пропустить шаг assign, если только вы не выполняете дополнительную обработку после этого шага.

plot(read.csv(x, head=TRUE, sep=""), 
    typ="l", 
    col="red", 
    main=gsub('\\.txt', '', x)) 
+0

Большое спасибо, работает отлично. Но у меня есть другой вопрос. Поскольку имя файла заканчивается на .txt, я также буду иметь это в заголовке: есть ли способ удалить это и сохранить только ту часть заголовка, которая мне нужна. Надеюсь, это понятно. Еще раз спасибо – g256

+2

Это было бы лучше всего добавить как другой вопрос, но увидеть мои правки. – Justin

+0

Спасибо, это то, что я искал. – g256

Смежные вопросы