我总是发现其他人的创业简介文件对这门语言既有用又有指导意义。此外,虽然我对Bash和Vim进行了一些定制,但对R没有任何定制。
例如,我一直想要的一件事是在窗口终端中输入和输出文本的颜色不同,甚至可能是语法高亮显示。
我总是发现其他人的创业简介文件对这门语言既有用又有指导意义。此外,虽然我对Bash和Vim进行了一些定制,但对R没有任何定制。
例如,我一直想要的一件事是在窗口终端中输入和输出文本的颜色不同,甚至可能是语法高亮显示。
当前回答
这是我的~/。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那么我只是在必要的时候引用它。
其他回答
我喜欢保存我的R命令历史,并在每次运行R命令时都可用:
在shell或.bashrc中:
export R_HISTFILE=~/.Rhistory
在.Rprofile:
.Last <- function() {
if (!any(commandArgs()=='--no-readline') && interactive()){
require(utils)
try(savehistory(Sys.getenv("R_HISTFILE")))
}
}
options(stringsAsFactors=FALSE)
虽然我的. r配置文件中没有这个,因为它可能会破坏我的合作者的代码,但我希望它是默认的。为什么?
1)字符向量使用更少的内存(但只是很少);
2)更重要的是,我们可以避免这样的问题:
> x <- factor(c("a","b","c"))
> x
[1] a b c
Levels: a b c
> x <- c(x, "d")
> x
[1] "1" "2" "3" "d"
and
> x <- factor(c("a","b","c"))
> x[1:2] <- c("c", "d")
Warning message:
In `[<-.factor`(`*tmp*`, 1:2, value = c("c", "d")) :
invalid factor level, NAs generated
因子在你需要的时候很有用(比如在图中实现排序),但大多数时候都很麻烦。
我有这个,更动态的技巧来使用全终端宽度,它试图从COLUMNS环境变量中读取(在Linux上):
tryCatch(
{options(
width = as.integer(Sys.getenv("COLUMNS")))},
error = function(err) {
write("Can't get your terminal width. Put ``export COLUMNS'' in your \
.bashrc. Or something. Setting width to 120 chars",
stderr());
options(width=120)}
)
这样,即使您调整终端窗口的大小,R也将使用全宽度。
我的包括选项(menu.graphics=FALSE),因为我喜欢禁用/抑制tcltk弹出的CRAN镜像在R中选择。
我讨厌每次都输入“头”、“摘要”、“名字”这些完整的单词,所以我用别名。
你可以在你的. rprofile文件中放入别名,但是你必须使用函数的完整路径(例如utils::head),否则它将无法工作。
# aliases
s <- base::summary
h <- utils::head
n <- base::names
编辑:回答你的问题,你可以使用显色包在终端中有不同的颜色。太酷了!: -)