Как я могу сохранить указанное количество строк из истории R в файл? - PullRequest
3 голосов
/ 21 марта 2012

Это немного расстраивает, и я уверен, что есть простой ответ.

history(max.show=N) отобразит N строк истории на терминале. savehistory(file) сохранит несколько строк истории в файл, в зависимости от некоторой переменной среды. Что я хотел бы сделать, это

savehistory(file, max.show=N) 

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

Существует ли быстрая функция / способ сохранить указанное количество строк в указанном файле?

1 Ответ

4 голосов
/ 21 марта 2012

Я думаю, что вам лучше всего использовать функцию истории:

history2file <- function (fname, max.show = 25, reverse = FALSE, pattern, ...) 
{
## Special version of history() which dumps its result to 'fname'
    file1 <- tempfile("Rrawhist")
    savehistory(file1)
    rawhist <- readLines(file1)
    unlink(file1)
    if (!missing(pattern)) 
        rawhist <- unique(grep(pattern, rawhist, value = TRUE, 
            ...))
    nlines <- length(rawhist)
    if (nlines) {
        inds <- max(1, nlines - max.show):nlines
        if (reverse) 
            inds <- rev(inds)
    }
    else inds <- integer()
    writeLines(rawhist[inds], fname)
}
history2file("/tmp/bla")

Однако я бы побудил вас начать работать непосредственно с файлами сценариев, а не выполнять какие-либо действия в командной строке, а затем позже попытаться собрать сценарий вместе.

...