Translate

레이블이 RStudio인 게시물을 표시합니다. 모든 게시물 표시
레이블이 RStudio인 게시물을 표시합니다. 모든 게시물 표시

2017년 9월 16일 토요일

[R] Data Frame, List에서 name을 변수로 받는 방법


Laptop
운영체제Windows 10 Home 64bit
개발프로그램RStudio Version 1.0.153

자료형 중 name 속성을 가지는 것들에는 모두 해당될 것 같다. 
(Data Frame, List 밖에 몰라서 제목은 그 2개만 썼다.)
아래 소스는 data.frame을 list로 바꿔도 동일한 결과가 나온다.

df <- data.frame(X=1, Y=2, Z=3)

이런식으로 X, Y, Z 라는 name들을 가진 Data Frame이 있다고 하자.

일반적으로 각 값에 접근할 때, $ 기호를 이용하여



이런식으로 실행된다.
단 이게 적용이 되지 않는 경우가 있는데, 바로 아래와 같이 name을 변수로 받을 때이다.

for (i in names(df)){
  show(i)
  show(df$i)
}








결과를 보면 names(df)에 해당하는 i를 출력했을 때 X, Y, Z는 제대로 출력되지만,
df$i 의 경우 접근하지 못하고 NULL이 출력된다.


이 경우, [[]] 를 대신 사용한다.

소스를 고쳐 다음과 같이 쓰면, 정상적인 결과가 출력된다.

for (i in names(df)){
  show(i)
  show(df[[i]])
}









꼭 반복문에서만 이런게 아니라, $ 기호는 변수 자체를 받지 못하는 것 같다.
이걸 보면 알 수 있다.







기초적인 문법인 것 같으나, 독학을 하다보니 약간 헤맸다.

2017년 7월 25일 화요일

R CRAN에서 삭제된, 혹은 구버전 패키지 다운로드하기


Laptop
운영체제Ubuntu 16.04 LTS 64bit
개발프로그램RStudio Version 1.0.143
(R version 3.4.1)

CRAN이란, R 언어에서 사용되는 패키지 등의 자료의 모음이라고 보면 된다.

이 중 같은 기능을 수행하는 다른 패키지로 대체되고 사라지는 패키지들이 존재한다.
https://cran.r-project.org/web/packages/[패키지명]/index.html
[패키지명]부분을 바꿔 주소창에 입력해 들어가면 확인해 볼 수 있다.
Package ‘[패키지명]’ was removed from the CRAN repository. 라는 메시지가 뜰 것이다.

이 경우 install.packages('[패키지명]') 을 입력해도
package ‘[패키지명]’ is not available (for R version [R 버전])
라는 메시지만 돌아올 뿐이다.

하지만 경우에 따라 그 패키지를 사용하고 싶을 수 있다.
혹은 install.packages를 사용하는 경우 최신 버전만 설치되므로, 그 이전 버전을 설치하고 싶을 수도 있다.

당연히 방법이 없는 건 아니고, 현 시점에서는 삭제되었더라도 CRAN에서 기록을 모두 가지고 있다.

여기서 Ctrl+F 로 패키지명을 찾고, 들어가서 버전명을 확인하면 된다.
혹은 상단 링크에 들어간 상태로 두번째 줄에 archive를 클릭해도 같은 경로로 연결된다.
https://cran.r-project.org/src/contrib/Archive/


설치 방법은 두가지가 있는데

첫번째는 다운로드 링크를 그대로 입력하는 방법 (인터넷 연결 필수):
install.packages("https://cran.r-project.org/src/contrib/Archive/[패키지명]/[원하는 버전 파일명].tar.gz", repos = NULL, type="source")

두번째는 wget 등을 이용하여 tar.gz 파일을 다운로드 후, 로컬 안에 저장하여 그 경로를 입력하는 방법이다.
/home 에 저장했다면
install.packages("/home/[파일명].tar.gz", repos = NULL, type="source")

물론 다운받을 때는 인터넷 연결이 필요하지만, 그 후에 혹시 R 개발환경을 다시 설정할 때
tar.gz 파일을 갖고 있다면 그 때는 연결이 필요하지 않다.

+ RStudio 에서는 메뉴에서 탐색기를 이용하여 더 간편하게 선택이 가능하다.




이 후 탐색기 창이 뜨는데, 거기서 tar.gz 파일을 열고 Install 버튼을 눌러 마치면 된다.

Install from을 기본 선택 상태인 Repository(CRAN)으로 하면 CRAN에 존재하는 패키지의 경우에도 더 쉽게 설치할 수 있다.
(여러 개의 패키지를 동시에 다운받을 경우 이름을 , 로 구분하라고 적혀있다.)