[r] 전문가 R 사용자, .Rprofile에 무엇이 있습니까? [닫은]

나는 항상 다른 사람들의 시작 프로필 파일이 언어에 대해 유용하고 유익한 것을 발견했습니다. 또한 BashVim에 대한 사용자 정의가 있지만 R에는 아무것도 없습니다.

예를 들어, 내가 항상 원했던 한 가지는 윈도우 터미널의 입력 및 출력 텍스트의 색상이 다르며 심지어 구문 강조입니다.



답변

여기 내 꺼야 착색에 도움이되지 않지만 ESS 및 Emacs에서 얻습니다 …

options("width"=160)                # wide display with multiple monitors
options("digits.secs"=3)            # show sub-second time stamps

r <- getOption("repos")             # hard code the US repo for CRAN
r["CRAN"] <- "http://cran.us.r-project.org"
options(repos = r)
rm(r)

## put something this is your .Rprofile to customize the defaults
setHook(packageEvent("grDevices", "onLoad"),
        function(...) grDevices::X11.options(width=8, height=8,
                                             xpos=0, pointsize=10,
                                             #type="nbcairo"))  # Cairo device
                                             #type="cairo"))    # other Cairo dev
                                             type="xlib"))      # old default

## from the AER book by Zeileis and Kleiber
options(prompt="R> ", digits=4, show.signif.stars=FALSE)


options("pdfviewer"="okular")         # on Linux, use okular as the pdf viewer


답변

options(stringsAsFactors=FALSE)

내 .Rprofile에 실제로는 없지만 공동 저자의 코드가 손상 될 수 있기 때문에 이것이 기본값이기를 바랍니다. 왜?

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"

> 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

요인은 필요할 때 유용하지만 (예 : 그래프에서 순서 구현) 대부분 성가신 일입니다.


답변

나는 매번 전체 단어 ‘head’, ‘summary’, ‘names’를 입력하는 것을 싫어하므로 별칭을 사용합니다.

별칭을 .Rprofile 파일에 넣을 수 있지만 함수의 전체 경로 (예 : utils :: head)를 사용해야합니다. 그렇지 않으면 작동하지 않습니다.

# aliases
s <- base::summary
h <- utils::head
n <- base::names

편집 : 귀하의 질문에 대답하기 위해, 당신이 사용할 수있는 colorout의 단자에 다른 색을 가지고 패키지를. 멋있는! 🙂


답변

내 꺼야 나는 항상 주요 크랜 저장소를 사용하고 개발중인 패키지 코드를 쉽게 소스 할 수있는 코드를 가지고 있습니다.

.First <- function() {
    library(graphics)
    options("repos" = c(CRAN = "http://cran.r-project.org/"))
    options("device" = "quartz")
}

packages <- list(
  "describedisplay" = "~/ggobi/describedisplay",
  "linval" = "~/ggobi/linval",

  "ggplot2" =  "~/documents/ggplot/ggplot",
  "qtpaint" =  "~/documents/cranvas/qtpaint",
  "tourr" =    "~/documents/tour/tourr",
  "tourrgui" = "~/documents/tour/tourr-gui",
  "prodplot" = "~/documents/categorical-grammar"
)

l <- function(pkg) {
  pkg <- tolower(deparse(substitute(pkg)))
  if (is.null(packages[[pkg]])) {
    path <- file.path("~/documents", pkg, pkg)
  } else {
    path <- packages[pkg]
  }

  source(file.path(path, "load.r"))
}

test <- function(path) {
  path <- deparse(substitute(path))
  source(file.path("~/documents", path, path, "test.r"))
}


답변

R 명령 기록을 저장하고 R을 실행할 때마다 사용할 수 있도록하는 것이 좋습니다.

쉘 또는 .bashrc에서 :

export R_HISTFILE=~/.Rhistory

.Rprofile에서 :

.Last <- function() {
        if (!any(commandArgs()=='--no-readline') && interactive()){
                require(utils)
                try(savehistory(Sys.getenv("R_HISTFILE")))
        }
}


답변

다음은 창 작업에 유용한 두 가지 기능입니다.

첫 번째는 \s를 로 변환합니다 /.

.repath <- function() {
   cat('Paste windows file path and hit RETURN twice')
   x <- scan(what = "")
   xa <- gsub('\\\\', '/', x)
   writeClipboard(paste(xa, collapse=" "))
   cat('Here\'s your de-windowsified path. (It\'s also on the clipboard.)\n', xa, '\n')
 }

두 번째는 새 탐색기 창에서 작업 디렉토리를 엽니 다.

getw <- function() {
    suppressWarnings(shell(paste("explorer",  gsub('/', '\\\\', getwd()))))
}


답변

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이 전체 너비를 사용합니다.