Ответ 1
Письмо уже сделано.
2009 сообщение от Duncan Murdoch:
CleanTranscript <- function(lines) {
lines <- grep("^[[:blank:]]*[^>+[:blank:]]*[>+]", lines, value = TRUE)
lines <- sub("^[[:blank:]]*[^>+[:blank:]]*[>+] ?", "", lines) }
source(textConnection(CleanTranscript(
# This is the Windows input strategy
readLines("clipboard")
# See below for Mac version
)),
echo = TRUE, max.deparse.length=Inf)
Последующая статья R-help 2009 года от Gabor Grothendieck:
process.source <- function(action = c("both", "run", "show"), echo = TRUE,
max.deparse.length = Inf, ...) {
# This is the Mac input strategy
L <- readLines(pipe("pbpaste"))
# for Windows devices use
# L <- readLines("clipboard")
rx <- "^[[:blank:]]*[^>+[:blank:]]*[>+]"
is.cmd <- grepl(rx, L)
L[is.cmd] <- gsub(paste(rx, "?"), "", L[is.cmd])
L[!is.cmd] <- paste("#", L[!is.cmd])
action <- match.arg(action)
if (action != "run") for(el in L) cat(el, "\n")
if (action == "both") cat("##################################\n")
if (action != "show")
source(textConnection(L), echo = echo,
max.deparse.length = max.deparse.length, ...)
invisible(L) }
Примечание. Предыдущие сообщения предложили мне опубликовать это как "запрос функции" в Диспетчерском совете RStudio. Хотя я еще не сломал его, может потребоваться больше тестов, если он будет встроен в инфраструктуру RStudio.