有没有办法将记录的R代码粘贴到R控制台或Rstudio中,而没有注册箭头或加号?

Dav*_*415 10 r

通过一个例子,这将更有意义.CRAN的典型R手册显示R代码,其中一行以>开头,而缩进用+表示.有关 示例,请参见 http://cran.r-project.org/web/packages/doMC/vignettes/gettingstartedMC.pdf.

麻烦的是你不能将它剪切并粘贴到控制台而不将其复制到编辑器中并删除那些箭头和加号字符.是否有更简单的方法将该文本作为R代码执行?我认为有人必须处理这个问题.否则,我想我会写一个脚本.

42-*_*42- 17

写作已经完成.

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) 
Run Code Online (Sandbox Code Playgroud)

随后的Gabor Grothendieck 2009年R-help帖子:

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) }
Run Code Online (Sandbox Code Playgroud)

注意:upvotes促使我在RStudio讨论板上将其发布为"功能请求".虽然我还没有打破它,但如果要将其内置到RStudio框架中,则可能需要更多测试.