Печать в файл из функции в R - PullRequest
2 голосов
/ 25 января 2012

Фон

Привет всем!

Я новичок в использовании R, и заинтересовался его использованием после того, как один из членов команды дал учебное пособие о том, как это может быть полезно в академической среде.настройка.

Я пытаюсь написать скрипт для автоматического считывания моих данных из нескольких файлов, а затем построить результирующие графики для нескольких файлов, чтобы их можно было легко добавить в рукопись (PowerPoint, латекс и т. д.).)

Проблема

Я обнаружил, что следующий код позволит мне создать график

p = qplot(factor(step), y, data=x, colour=c))
p = p + theme_bw()
# etc...

, обтекание которого вокруг вызова png позволит мне вывестиграфик PNG:

png("test.png")
p = qplot(factor(step), y, data=x, colour=c))
p = p + theme_bw()
# etc...
p
dev.off()

Я хотел поместить создание графиков в функцию, чтобы я мог создавать графики и последующие отдельные PNG.Поэтому я помещаю все в функцию:

func <- function()
{
    png("test.png")
    p = qplot(factor(step), y, data=x, colour=c))
    p = p + theme_bw()
    # etc...
    p
    dev.off()
}

Если я вызываю func(), PNG создан, но он пуст.Есть ли какая-то конкретная причина, почему я могу сделать это без функции, но не могу, когда я вызываю ее из функции?

1 Ответ

7 голосов
/ 25 января 2012

При использовании ggplot2 или lattice неинтерактивно (т.е. не из командной строки) вам необходимо явно print() построенные вами графики.Так что просто сделайте print(p) в последней строке вашего кода, и все должно быть в порядке.

Это недостаточно интуитивно понятно, что это один из самых частых часто задаваемых вопросов .

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