我总是发现其他人的创业简介文件对这门语言既有用又有指导意义。此外,虽然我对Bash和Vim进行了一些定制,但对R没有任何定制。

例如,我一直想要的一件事是在窗口终端中输入和输出文本的颜色不同,甚至可能是语法高亮显示。


当前回答

我经常需要调用一系列调试调用,取消注释它们可能非常乏味。在SO社区的帮助下,我找到了以下解决方案,并将其插入到我的. rprofile .site中。# BROWSER是为我的Eclipse任务设置的,这样我就可以在任务视图窗口中对浏览器调用有一个概述。

# turn debugging on or off
# place "browser(expr = isTRUE(getOption("debug"))) # BROWSER" in your function
# and turn debugging on or off by bugon() or bugoff()
bugon <- function() options("debug" = TRUE)
bugoff <- function() options("debug" = FALSE) #pun intended

其他回答

这是我的~/。Rprofile,为Mac和Linux设计。

这使得错误更容易被发现。

options(showWarnCalls=T, showErrorCalls=T)

我讨厌CRAN菜单选择,所以设置一个好的。

options(repos=c("http://cran.cnr.Berkeley.edu","http://cran.stat.ucla.edu"))

更多的历史!

Sys.setenv(R_HISTSIZE='100000')

下面是从终端在Mac OSX上运行的(我更喜欢R.app,因为它更稳定,你可以通过目录来组织你的工作;还要确保得到一个好的~/.inputrc)。默认情况下,你会得到一个X11显示,这看起来不太好;这反而给出了一个与GUI相同的石英显示。if语句应该在Mac上从终端运行R时捕获这种情况。

f = pipe("uname")
if (.Platform$GUI == "X11" && readLines(f)=="Darwin") {
  # http://www.rforge.net/CarbonEL/
  library("grDevices")
  library("CarbonEL")
  options(device='quartz')
  Sys.unsetenv("DISPLAY")
}
close(f); rm(f)

并预加载一些库,

library(plyr)
library(stringr)
library(RColorBrewer)
if (file.exists("~/util.r")) {
  source("~/util.r")
}

跑龙套的地方。r是我在通量下随机选取的一袋东西。

此外,由于其他人提到了控制台宽度,以下是我如何做到这一点。

if ( (numcol <-Sys.getenv("COLUMNS")) != "") {
  numcol = as.integer(numcol)
  options(width= numcol - 1)
} else if (system("stty -a &>/dev/null") == 0) {
  # mac specific?  probably bad in the R GUI too.
  numcol = as.integer(sub(".* ([0-9]+) column.*", "\\1", system("stty -a", intern=T)[1]))
  if (numcol > 0)
    options(width=  numcol - 1 )
}
rm(numcol)

这实际上不在. rprofile中,因为每次调整终端窗口大小时都必须重新运行它。我有它在util。r那么我只是在必要的时候引用它。

我的包括选项(menu.graphics=FALSE),因为我喜欢禁用/抑制tcltk弹出的CRAN镜像在R中选择。

下面是将表导出到LaTeX的一小段代码。它将我编写的许多报告的所有列名更改为数学模式。我的. r配置文件的其余部分是相当标准的,上面已经介绍了大部分内容。

# Puts $dollar signs in front and behind all column names col_{sub} -> $col_{sub}$

amscols<-function(x){
    colnames(x) <- paste("$", colnames(x), "$", sep = "")
    x
}

我在个人资料中设置了格子颜色主题。以下是我使用的另外两个调整方法:

# Display working directory in the titlebar
# Note: This causes demo(graphics) to fail
utils::setWindowTitle(base::getwd())
utils::assignInNamespace("setwd",function(dir)   {.Internal(setwd(dir));setWindowTitle(base::getwd())},"base")

# Don't print more than 1000 lines
options(max.print=2000)

我发现两个函数是非常必要的:首先,当我在几个函数上设置debug()并且我已经解决了错误,所以我想要undebug()所有函数-而不是一个接一个。在这里添加的undebug_all()函数作为接受的答案是最好的。

其次,当我定义了许多函数并正在寻找一个特定的变量名时,很难在ls()的所有结果中找到它,包括函数名。这里发布的lsnofun()函数真的很好。