새로운 버전의 R을 설치하는 고통 없는 방법은 무엇입니까?
Andrew Gelman은 최근 R에 대한 쉬운 업그레이드 프로세스의 부족을 한탄했습니다(아마도 Linux보다 Windows에서 더 적합할 것입니다).소프트웨어 설치부터 모든 설정/패키지 복사에 이르기까지 업그레이드를 할 수 있는 좋은 방법을 알고 있는 사람이 있습니까?
이 제안은 댓글에 포함되어 있었고 제가 최근에 사용하고 있는 것입니다.먼저 새 버전을 설치한 다음 이전 버전에서 다음을 실행합니다.
#--run in the old version of R
setwd("C:/Temp/")
packages <- installed.packages()[,"Package"]
save(packages, file="Rpackages")
새 버전에서는 다음과 같이 나옵니다.
#--run in the new version
setwd("C:/Temp/")
load("Rpackages")
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p)
완성도를 높이기 위해 이 문제를 방지할 수 있는 몇 가지 방법이 있습니다.Dirk가 말했듯이 패키지를 컴퓨터의 다른 디렉터리에 저장합니다.
install.packages("thepackage",lib="/path/to/directory/with/libraries")
할 수 ..Library
를 한 값.libPaths
.libPaths("/path/to/directory/with/libraries")
이에 첫 값으로 됩니다..Library
변수이며 기본값으로 설정됩니다.
이 작업을 추가로 자동화하려면 R 프로파일에서 이 작업을 지정할 수 있습니다.R 빌드의 /etc/ 디렉토리에 있는 사이트 파일입니다.그러면 R이 로드될 때마다 자동으로 로드되므로 더 이상 걱정할 필요가 없습니다.지정된 디렉터리에서 패키지를 설치하고 로드하기만 하면 됩니다.
마지막으로, 제 R 프로필에 작은 코드가 포함되어 있습니다.새 R 버전을 설치할 때 모든 패키지를 다시 설치할 수 있도록 허용하는 사이트입니다.당신은 새로운 R 버전으로 업데이트하기 전에 그것들을 나열하기만 하면 됩니다.저는 그것을 사용합니다.모든 패키지가 포함된 업데이트된 목록이 포함된 RData 파일입니다.
library(utils)
## Check necessary packages
load("G:\Setinfo\R\packagelist.RData") # includes a vector "pkgs"
installed <- pkgs %in% installed.packages()[, 'Package']
if (length(pkgs[!installed]) >=1){
install.packages(pkgs[!installed])
}
제가 패키지 리스트를 작성합니다.지정에 의한 RD 데이터.Last()
Rprofile.html Rprofile에 .site().설치하면 패키지 됩니다.
.Last <- function(){
pkgs <- installed.packages()[,1]
if (length(pkgs) > length(installed)){
save(pkgs,file="G:\Setinfo\R\packagelist.RData")
}
}
새로운 R 버전을 설치할 때 필요한 요소를 R 프로파일에 추가하기만 하면 됩니다.사이트 파일 및 모든 패키지가 다시 설치됩니다.저는 R 프로파일을 조정해야 합니다.어쨌든 사이트(합 대비 사용, Tinn-R에 대한 추가 코드 추가, 이런 것들)는 추가 작업이 아닙니다.모든 패키지를 새로 설치하는 데 시간이 더 걸릴 뿐입니다.
이 마지막 비트는 원래 질문에서 솔루션으로 제공된 것과 동일합니다.먼저 "설치된" 목록을 얻는 것에 대해 걱정할 필요가 없습니다.
CRAN에서 설치하지 않은 패키지가 있는 경우에도 문제 없이 작동하지 않습니다.하지만 이 코드는 쉽게 확장되어 이러한 코드도 포함할 수 있습니다.
윈도우즈를 사용하는 경우 설치 관리자 패키지를 사용할 수 있습니다.
install.packages("installr")
require(installr)
updateR()
가장 좋은 방법은 RGui 시스템입니다.모든 패키지가 새 폴더로 전송되고 이전 패키지는 삭제 또는 저장됩니다(둘 중 하나를 선택할 수 있음).그런 다음 RStudio를 다시 열면 업데이트된 버전을 사용하고 있음을 즉시 인식합니다.나에게 이것은 매력적으로 작용했습니다.
설치 프로그램에 대한 자세한 내용은 여기를 참조하십시오.
두 가지 빠른 제안:
이 대량 라이브러리 재배치를 지원하는 도구로 구성된 Gabor의 배치 파일을 사용합니다.주의사항:저는 그것들을 사용하지 않았습니다.
설치된 R 버전의 '파일 트리' 내에 라이브러리를 설치하지 마십시오.Windows에서 R을 C:/opt/R/R-$ 버전에 넣을 수는 있지만 다음 스니펫을 사용하여 모든 라이브러리를 C:/opt/R/library/에 배치하면 문제가 처음부터 해결됩니다.
$ cat .Renviron # this is using MSys/MinGW which looks like Cygwin
## Example .Renviron on Windows
R_LIBS="C:/opt/R/library"
CRAN이 아닌 패키지가 있는 경우 위에서 제안한 방법은 완전히 작동하지 않습니다.예를 들어 개인 패키지 또는 CRAN이 아닌 사이트에서 다운로드한 패키지입니다.
Windows에서 선호하는 방법(2.10.1을 2.11.0으로 업그레이드):
- R-2.11.0 설치
- 알았다.
R-2.10.0/library/*
R-2.11.0/library/
- 덮어쓸 수 있는지 묻는 메시지에 "아니오"라고 대답합니다.
- R 2.11.0 시작
- 명령 실행 R 령행을 합니다.
update.packages()
질문에 제시된 솔루션과 관련하여 새 버전을 이미 설치한 경우 이전 버전의 R을 실행하는 것이 쉽지 않을 수 있습니다.이 경우에도 다음과 같이 이전 R 버전에서 누락된 모든 패키지를 다시 설치할 수 있습니다.
# Get names of packages in previous R version
old.packages <- list.files("/Library/Frameworks/R.framework/Versions/3.2/Resources/library")
# Install packages in the previous version.
# For each package p in previous version...
for (p in old.packages) {
# ... Only if p is not already installed
if (!(p %in% installed.packages()[,"Package"])) {
# Install p
install.packages(p)
}
}
는 (으)ㄹ 수 없습니다.list.files()
코드의 첫 번째 줄에는 이전 버전의 모든 패키지 폴더가 있는 이전 R 버전의 라이브러리 디렉터리 경로가 있어야 합니다. 경우,은 지금제경는에, 은것이입니다."/Library/Frameworks/R.framework/Versions/3.2/Resources/library"
이전 R 버전이 3.2가 아니거나 Windows(윈도우) 버전인 경우에는 다릅니다.)
그if
문은 패키지가 설치되지 않도록 합니다.
- 새 R 버전에 이미 설치되어 있거나,
- 이전 버전에서 설치된 패키지의 종속성으로 설치되었습니다.
for
루우프
Dirk의 제안에 따라 윈도우에서 이를 수행할 수 있는 몇 가지 R 코드가 있습니다.Windows XP에서 R을 쉽게 업그레이드하는 방법
업데이트(15.04.11):Windows 7에서 R을 업그레이드하는 일반적인 문제를 해결하는 방법을 설명하는 다른 게시물을 작성했습니다.
두 가지 옵션:
- 여기에 내 대답 구현
- StatET와 함께 Eclipse에서 R을 사용하는 경우 Run Configurations를 열고 Console 탭을 클릭한 다음 R snipet run after startup(시작 후 실행) 상자에 선택한 디렉토리와 함께 다음 행을 추가합니다.
.libPaths("C:/R/library")
Windows 8(윈도우 8)에서 이상한 이유로 인터넷 연결을 사용하여 패키지를 설치할 수 없습니다.
저는 일반적으로 CRAN의 .zip 파일을 사용하여 설치합니다.
R 3.2.5에서 R 3.3.1로 이동한 후.
패키지를 복사했습니다.
C:\Path\to\packa\R\win-library\3.2
C:\Path\to\packa\R\win-library\3.3
.
그리고 R 세션을 다시 시작했습니다.완벽하게 작동했습니다.저는 모든 패키지가 잘 작동하는지 확인하지 못했습니다.하지만 제가 확인한 것들은 완벽하게 잘 작동하고 있습니다.이 해킹이 모두에게 효과가 있기를 바랍니다.
건배.
당신이 선견지명이 있다면 수락된 답은 효과가 있을 수 있지만, 저는 이미 이전 버전을 제거했기 때문에 이러한 지시를 따를 수 없었습니다.아래 설명된 단계는 2.1 및 3.1에서 OSX를 업그레이드할 때 작동했습니다.
파일: 3의 디렉터리를 할 수 있습니다.3.1 파일 3.2 파일의 디렉터리는 다음과 같습니다.는 R하고, 합니다. 건너뛰기..
그리고...
그리고..DS_Store
매개 변수:
OLD=$(ls -d /Library/Frameworks/R.framework/Versions/*.* |tail -n 2 | head -n 1)Resources/library/
echo "packages = c(\"`ls $OLD | tail +4| paste -s -d ',' - | sed -E 's|,|\",\"|'g`\")" | tr -d "/"
(추가)|pbcopy
Mac 클립보드에 직접 복사하려면 끝까지)
그런 다음 R에서 생성된 변수를 붙여넣을 수 있습니다.새 버전의 R에 정의되면 위의 지침에서 설치된 패키지를 루프할 수 있습니다.
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p, dependencies=TRUE, quiet=TRUE, ask=FALSE)
나에게 이 페이지는 좋은 https://www.r-statistics.com/2013/03/updating-r-from-r-on-windows-using-the-installr-package/ 또는 다른 옵션은 새로운 옵션을 설치하는 것이고 마지막으로 당신이 내 PC의 창에 넣는 것입니다.
.libPaths("c("D:/Documents/R/win-library/3.2"), "C:/Program Files/R/R-3.2.3/library", "C:/Program Files/R/R-3.2.0/library", "D:/Documents/R/win-library/2.15").
이 경우 마지막 버전의 모든 경로는 항상 첫 번째 경로를 "D:/Documents/R/win-library/3"로 지정합니다.2"는 고정되었고 다른 하나는 패키지를 복사하거나 이동할 필요가 없기 때문에 다른 하나를 넣었습니다. 제가 제안하기로는 그냥 그것이라고 부릅니다.
linux
+bash
+debian
+apt
사용자:
의 최신 버전을 설치/업그레이드하는 경우
R
그러면 사용자에게 권한이 있다고 가정할 수 있습니다. (필수적인 것은 아닙니다. 프로세스를 훨씬 단순하게 만들 뿐입니다. 일관성을 위해 아래 스크립트에서 사용합니다.sudo
모든 설치에 사용됩니다.)처럼R
패키지도 설치됩니다.root
따라서 이것들을 배치하는 것이 허용됩니다./usr/local/
.호출:
curl
아래는 당신이 이미 관심이 있다고 가정합니다.sid
의 석방.R
가장 최근의 불안정한 버전(구축/점검 시 필요)R
포장) 즉,cat /etc/apt/sources.list | grep 'sid' || exit 1
비록 이것은 최근의 안정적인 릴리스로 쉽게 대체될 수 있지만, 예를 들어.
buster
.일반적으로 권장되는 키를 사용하지 않습니다.특히 (다음 스크립트에서와 같이) 패키지를 설치하는 경우에는 필수가 아닙니다.
R
그 자체(Rscript -e
아래).또한 이러한 키는 몇 년마다 깨지거나 변경되는 경향이 있습니다.따라서 파일에 다음 서문을 추가하는 것을 물론 환영합니다.R.sh
다음은 다음과 같습니다.sudo apt-key adv --keyserver keyserver.ubuntu.com \ --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
그
array
패키지는 분명 포괄적이지 않지만 제가 개인적으로 유용하다고 생각하는 몇 가지 예를 제공합니다.를 사용하여 새로 설치/업그레이드debian
아래와 같이 패키지는 모든 표준 '권장' 패키지의 최신 버전을 제공해야 합니다(예:survival
). 수 CRAN은 해당 업데이트를 제공합니다.debian
꾸러미따라서, 당신은 이것들 중 일부를 다음에 추가하기를 원할 수 있습니다.array
최신 버전의 '권장 사항'이 있는 경우 아래에 표시됩니다.R
패키지는 필수입니다.아래 프로세스에 설치된 패키지도 필수적인 것은 아닙니다(사용하는 경우).
r-base
)이 아니라 '번호를 합니다. 는 완하지 추에합가 '기능번제'의 에 중요합니다R
꾸러미
어든쨌배...을니다합치에 다음을 .R.sh
:
sudo apt update && sudo apt --yes full-upgrade
sudo apt install --yes libappstream4 curl
### ov1 = online version; lv1 = local version (i.e. currently installed)
ov1=$(curl --silent --url https://packages.debian.org/sid/r-base |
grep 'meta name=\"Keywords\"' |
grep --only-matching '[0-9].*[0-9]') ; echo $ov1
## command -v = print a description of COMMAND similar to the `type' builtin
## && = if prior command succeeds, then do; || = if prior fails, then do
command -v 'R --version' &&
lv1=$(R --version |
grep --only-matching '[0-9\.]*[0-9]' |
## || = otherwise
head -1) ||
lv1=0
## 'lt' = less than
if dpkg --compare-versions "$lv1" 'lt' "$ov1"
then ## declare -a = indexed array
declare -a deb1=('r-base' 'r-base-dev' 'r-recommended')
for i in "${deb1[@]}"
do sudo apt install --yes "$i"
done
fi
### certain Debian packages are required by 'R' so best have these first
sudo apt install --yes ccache libcairo2-dev libxml2-dev libcurl4-openssl-dev \
libssl-dev liblapack-dev libssl-dev
declare -a pkg1=('data.table' 'ggplot2' 'knitr' 'devtools' 'roxygen2')
## installing as 'root' so these are installed in
Rscript -e ".libPaths()[1]"
for i in "${pkg1[@]}"
do sudo Rscript -e "install.packages('$i', dependencies=TRUE)"
done
### other useful additions
sudo apt install --yes libblas-dev libboost-dev libarmadillo-dev \
jags pandoc pandoc-citeproc
sudo apt update && sudo apt full-upgrade
들어 가정하고 합니다.source R.sh
.
(「 」(「 」) 여부debian
또는R
셸에서 루프로 하나씩 이동하는 것은 다소 비효율적이지만 오류를 쉽게 추적할 수 있습니다. IMHO).의 수에 따라 시간이 걸릴 수 있습니다.R
패키지, 그러니까 하룻밤 사이에 실행하는 것이 가장 단순할 수도 있습니다.
리눅스에서, 이제 그것은 매우 간단합니다.그냥 만들기:
install.packages("ropenblas")
ropenblas::rcompiler()
언급URL : https://stackoverflow.com/questions/1401904/painless-way-to-install-a-new-version-of-r
'programing' 카테고리의 다른 글
훌륭한 R 재현 가능 예제를 만드는 방법 (0) | 2023.06.15 |
---|---|
오라클에서 저장 프로시저가 마지막으로 수정 또는 컴파일된 시기를 확인하려면 어떻게 해야 합니까? (0) | 2023.06.15 |
파이썬에서 특정 달의 일 수를 어떻게 결정합니까? (0) | 2023.06.15 |
컨트롤러 ASP.NET MVC에서 프로젝트 루트 경로를 가져오시겠습니까? (0) | 2023.06.15 |
R 객체 식별 (0) | 2023.06.15 |