글쓴이 보관물: 홈피지기

Mac 에서 R의 rugarch 패키지 설치시 오류가 날 때 처리법

제목 그대로 다음과 같은 오류가 날 수 있습니다.


> require(rugarch)
필요한 패키지를 로딩중입니다: rugarch
Error : .onLoad가 loadNamespace()에서 'rgl'때문에 실패했습니다:
호출: dyn.load(file, DLLpath = DLLpath, )
에러: 공유된 객체 '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rgl/libs/rgl.so'를 로드 할 수 없습니다:
dlopen(/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rgl/libs/rgl.so, 6): Library not loaded: /opt/X11/lib/libGLU.1.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.3/Resources/library/rgl/libs/rgl.so
Reason: image not found

view raw

rugarch_error.R

hosted with ❤ by GitHub

그러면 XQuartz에 가서 XQuartz을 다운받아서 설치하시고 R을 종료하고 재실행하시면 잘 설치됩니다. 출처는 다음과 같습니다.

Installing “rgl” package in R, Mac OSX El Captian [fixed] – Stack Overflow

맥에 mpv을 설치해보자!

맥에는 이미 무비스트라는 걸출한 동영상을 보는 앱이 있기 때문에, 다른 앱이 거의 필요가 없죠. 그러나 가끔은 다른 앱이 필요한 경우가 있습니다. 이런 경우 저는 MPlayerx, MPlayer, VLC 등을 사용했었습니다. 그러나 MPlayerx은 malware 문제가 있는 관계로 바로 지워 버렸고, MPlayer 도 설치하는 것이 어렵고 뭘 설치해야 하는지 정신이 없고, VLC는 좀 사용하기가 불편했습니다. 예를 들어 앞으로 돌리기, 뒤로 되돌아 가기 등을 잘 찾을 수가 없더군요.

그러던 중 mplayer2 과 MPlayer을 포크해서(즉 소스를 갖다가 새로 만든) mpv(mpv.io)라는 새로운 플레이어 앱을 알게 되었습니다. 앞의 링크로 가보시면 아시겠지만, 정말로 단순한 UI을 가지고 있습니다. 물론 그건 것이 더 마음에 들었습니다. 그래서 설치를 해보고자 했더니 홈페이지에 OS X용은 다른 곳에 다운 받게 되어있더군요. 요즘 의심이 많아진 상태라서 앱을 직접 받는 것이 아니라 다른 방식으로 해보자는 생각이 들었습니다.

mpv.io | Installation를 보시면 아시겠지만, Homebrew으로 설치가 가능한 것 같더군요. 그래서 바로 설치에 들어갔습니다. Homebrew에 관련된 이야기는 다음 링크들을 참고하세요. 맨 마지막 링크를 보시면, 맥에 서버 같은 것을 쉽게 설치해주기도 합니다.

우선 Homebrew — macOS 용 패키지 관리자을 참고하여 Homebrew을 설치합니다. 그런 다음 다음과 같이 터미널에서 2줄만 입력하시면 됩니다. 참고로 첫번째 줄은 mpv이 있는지 확인하는 것입니다. 두번째 줄은 Homebrew를 최근 버젼으로 업그래이드 하는 것입니다. 마지막 세 번째 줄이 mpv이 바로 설치하는 명령어입니다.

brew search mpv
brew update
brew install mpv

뭐 이렇게 설치하면 앱 아이콘도 생기지 않습니다. 그러면 어떻게 mpv을 실행할까요? 터미널에서 실행하면 됩니다. mpv 파일명과 같이 입력하시면 됩니다. 불편해 보입니다. 그래서 제가 쓰는 편한 방법을 알려드리겠습니다. 우선 터미널에서 mpv이라고 키보드는 칩니다. 그런 다음 거기에 실행하고 싶은 파일 아이콘을 파인더에서 드래그 하여 터미널에 넣습니다. 그러면 파일 이름이 들어가게 됩니다. 그런 다음 엔터 키를 누르시면 됩니다. 뭐 설명은 복잡하지만, 한번해보시면 쉽습니다.

뭐 새로운 플래이어가 필요하시면 한번씩 설치해보세요! 생각보다 쓸만합니다.

데카르트의 Cogito ergo sum 에 대한 짧은 느낌

당근 지금 나는 생각하고 있겠지. 내가 있어야 생각할 수 있겠지. 없으면 생각할 수 있겠어? 나는 이것이 나에게 명석판명하게(clearly and distinctly), 인식되기 있기 때문에 참이라고 생각해. 그런데 그렇다고 해서, 다시 말해 내가 생각하고 있다고 해서, 내가 생각하고 있기 때문에, 이것을 근거로 내가 내 몸을 갖고 있다고 말할 수는 없지. 물론 나는 있지만 …?!

만일 내가 사고하지 않는다면 나는 내가 존재한다고 믿을 어떤 근거도 지니지 못할 것이다. 따라서 나는 오직 사고하는 것만을 본질로 삼는 실체이다. 따라서 내가 육체를 지닌다는 점은 나의 본질과 전혀 무관하다. 엔서니 케니, 『근대철학』, 김정호 옮김, 2014, 71~72쪽.

Cogito ergo sum – Wikipedia

데카르트가 새로운 옷을 만들어 그 옷을 입고 다녔는데 이 패션이 유행이 되었다. 모든 철학자들이 그 유행에 적합한, 그 옷에 잘 맞는 사람들이 아니었다. 데카르트이기 때문에 이 옷이 잘 맞았던 것일뿐이다.

고대 이래 자기 자신을 완전히 새로운 철학을 제시한 인물로 여긴 최초의 철학자는 바로 데카르트였다. 그는 자신을 인간과 인간을 둘러싼 세계에 관한 진리를 최초로 제시한 특권을 누린 인물로 여겼다. 이후 철학자들은 데카르트가 걸었던 길을 따랐다. 로크, 흄, 칸트는 각각 자신의 철학을 최초로 건전한 원리에 따라 구성된 새로운 창조물로 여겼다. ‘내 저술을 읽어라, 이전 사람들의 저술은 내다 버려라’ – 이것이 17, 18세기 사상가들의 한결 같은 주장이었다, 엔서니 케니, 『근대철학』, 김정호 옮김, 2014, 77쪽.

윈도우에서 만든 csv 파일을 Mac에서 사용하는 R에서 쉽게 열어보자.

뭐 간단한 팁인데요.

R을 사용하면서 csv파일을 맥, 윈도우, 리눅스 간에 같이 사용하는 경우가 있습니다. 이때 맥과 리눅스 간에는 유니코드 인코딩 방식중 UTF-8을 사용하면 그리 문제없이 파일을 공유할 수 있습니다. 그런데 문제는 윈도우가 끼어들면 문제가 복잡합니다. 윈도우에서 만들어진 csv 파일이 맥이나 리눅스에서 잘 안 읽어지는 경우가 많습니다.

물론 고수이신 분들은 다 쉽게 처리하시겠지만, 저는 항상 이런 경우 문제가 많았습니다. 그런데 아주 쉬운 방법을 하나 찾았습니다. 맥으로 파일을 보내기 전에 윈도우에서 보낼 csv 파일을 윈도우에서 메모장을 엽니다. 만약 파일이 크면 잘 안 열릴 수도 있습니다. 참고로 윈도우 10에서는 메모장이 100MB까지는 여는 것 같습니다.

그런 다음 파일 메뉴에서 다른 이름으로 저장을 선택하시면 아래와 같은 다이얼로그박스가 나옵니다. 여기서 아래와 같이 인코딩을 UTF-8을 바꾸신 다음 저장해주세요. 그런 다음 맥으로 보내시면, 문제 없이 R에서는 사용하실 수 있습니다.

다른 이름으로 저장

RStudio를 이용하여, R 코드와 한글이 들어 있는 R Markdown으로 쓴 파일을 pdf로 만드는 팁!

RStudio에는 기본적인 R보다 유용한 기능이 많습니다. 그중에서는 저는 knitr 패키지를 이용하여 R 코드가 들어있는 R Markdown으로 쓰여진 글을 HTML이나 pdf 파일로 만들어 주는 기능에 관심이 많았습니다. 물론 프리뷰(Preview) 버젼인 RStudio Version 0.99.1273에는 이것 보다 더 진보한R Markdown Notebooks이 들어 있습니다.

그러나 문제는 이 기능이 영어로만 되어 있는 것은 잘 되는데, 유난히 한글만 들어가면 잘 안 된다는 것입니다. HTML로 변환하는 것은 잘 되는 것 같았는데, pdf으로 변환하는 것이 문제였습니다. 그러다가 우연히 권재명님이 쓰신 Jaimyoung/data-science-in-korean: 한국어를 포함한 데이터와 분석코드를 다루는 팁을 살펴보다가 https://raw.githubusercontent.com/Jaimyoung/data-science-in-korean/master/test-template.Rmd이라는 링크를 발견했습니다. 이 파일을 살펴보니 다음과 같이 되어 있었습니다.

title: “한글 레퍼런스 R 마크다운 템플릿”
author: “권재명”
date: “July 18, 2015”
output:
word_document:
highlight: tango
reference_docx: korean-template.docx
pdf_document:
latex_engine: xelatex
mainfont: NanumGothic

그래서 이것을 참고로 RStudio 기본 파일을 다음과 같이 수정해서 아래와 같이 수정하니, 한글이 들어 있어도 pdf 파일로 잘 변환됩니다. 아래 내용은 기본 파일에서 앞부분만 고치고 한글이 들어 있는 내용을 한 줄 넣은 것입니다.


title: "R Notebook"
output:
pdf_document:
latex_engine: xelatex
html_notebook: default
html_document: default
mainfont: NanumGothic
이것은 [R Markdown](http://rmarkdown.rstudio.com) 노트북입니다.
This is an [R Markdown](http://rmarkdown.rstudio.com) Notebook. When you execute code within the notebook, the results appear beneath the code.
Try executing this chunk by clicking the *Run* button within the chunk or by placing your cursor inside it and pressing *Cmd+Shift+Enter*.
“`{r}
plot(cars)
“`
Add a new chunk by clicking the *Insert Chunk* button on the toolbar or by pressing *Cmd+Option+I*.
When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the *Preview* button or press *Cmd+Shift+K* to preview the HTML file).

RStudio에서 새 파일 에서 R Markdown은 선택하신 후 이미 만들어진 내용을 다 지우신 다음, 위의 코드를 붙여넣기를 하신 다음, knit라는 버튼을 눌러서, HTML과 pdf 파일로 변환하시면, 한글이 잘 나오는 것을 확인하실 수 있습니다. 참고로 pdf를 만드시려면 Latex를 설치하셔야 됩니다.

R에서 미국 연비(MPG)를 한국연비(km/L)로 있어보이게 바꾸기

우리 나라에서 사용하는 연비란 에너지관리공단 수송에너지 > 자동차공인연비 > 공인연비에 따르면 연료 1ℓ로 주행 가능한 거리(km)를 말하는 것을 말합니다. 그러나 미국은 연료 1갤런(gallon)으로 주행 가능한 거리를 마일(mile)로 계산하여 연비를 계산합니다. 미국이랑 우리나라가 단위가 다르니 생기는 문제입니다. 참고로 1갤런은 3.785411784리터(참고: 갤런 – 위키백과, 우리 모두의 백과사전) 이고 1 마일은 1.609344 킬로미터(참고: 마일 – 위키백과, 우리 모두의 백과사전) 입니다.

뭐 사전 지식은 다 알았으니, 실제로 연비를 바꿔보겠습니다. 미국 연비를 10부터 40까지 만들보겠습니다.

mpg < - seq(10,40)

mpg을 입력해 확인해보시면, 10부터 40까지 값이 들어있는 것을 보일 수 있습니다. 이것을 미국 연비라고 해봅시다. 이때 이것을 한국 연비로 바꿔 계산해봅시다. 위에서 살펴본 것을 토대로 변환식을 짜면 다음과 같습니다.

kmL <- (mpg * 1.609344)/3.785411784

kmL을 입력해 확인해보시면, mpg에 들어있던 것을 한국 연비로 바꾼 값을 확인할 수 있습니다. 미국 자동차 연비마일 MPG -> km/L 보는법의 포스트와 비교해 보면, 지금까지 계산한 값이 더 정확하고 자세한 것처럼 보입니다. ^^; 위의 것은 너무 단순해서 조금은 멋지게 패키지를 사용해서 바꿔보도록 하겠습니다. 아래 코드는 지금까지 한 것을 다 넣고 패키지를 설치해서 계산하고 위에서 계산한 것과 패키지를 이용해서 계산한 것을 비교해봤습니다.


mpg <- seq(10,40)
kmL <- (mpg * 1.609344)/3.785411784 ## 단순하게 바꾸기
install.packages("datamart") ## 패키지 설치
library(datamart) ## 패키지 설치
uconv(1, "US gal", "l", uset="Volume") ## 1 캘런을 리터로
uconv(1, "mile", "km", uset="Length") ## 1 마일을 킬로미터로
kmL.uconv <- uconv(mpg, "mile", "km", uset="Length")/uconv(1, "US gal", "l", uset="Volume") ## uconv()을 이용하여 바꾸기
kmL == kmL.uconv ## 두 계산 결과 확인

view raw

mpgToKml.R

hosted with ❤ by GitHub

맨 마지막 줄에 있는 kmL == kmL.uconv 명령을 입력하면 그 결과가 모두 TRUE로 나오는 것을 보니 두 계산 결과가 같은 것임을 확인할 수 있습니다.

맥이나 리눅스에서 제피(Gephi)를 돌릴 때, 손쉽게 분석 자료에서 “,”를 “;”로 바꾸는 방법

안녕하세요!

맥이나 리눅스에서 제피(Gephi)를 돌릴 때, 일반적으로 csv 파일을 이용하여 분석합니다. 그런데 Gephi는 csv 파일이 사용하는 “,”보다 “;”을 이용하여 작업을 하기 때문에, 분석 파일에 들어 있는 “,”를 “;”으로 바꿔줘야 합니다. 이런 경우 에디터로 해당 파일을 열어서 바꿔줍니다.

그러나 맥이나 리눅스를 사용하시는 분은 에디터를 사용하지 않고 손쉽게 바꾸실 수 있습니다. 우리가 바꿀 파일이 aaa.csv라고 해봅니다. 그리고 이 파일을 변환하여 바꾼 파일을 bbb.csv라고 해봅시다. 그러면 아래와 같이 터미널에서 한 줄만 명령어를 쳐주시면 됩니다. 정규표현식을 사용하는 것인데, 가운데 “s/,/;/g”이라는 문장이 “,”를 “;”으로 바꿔주는 역할을 합니다.

sed 's/,/;/g' aaa.csv > bbb.csv

이것을 이용하면 단어를 바꾸는데도 사용하실 수 있습니다. 참 윈도우에서는 안 될 것입니다. ^^; 제가 이것을 알게된 곳은 아래와 같습니다.

‎mytory.net/archives/12993

R 에서 대문자를 소문자로, 소문자를 대문자로 바꾸는 방법

영어로 된 문자열을 모두 대문자로 바꾸거나 소문자로 바꿔야 할 경우가 있습니다. 그럴 때에는 toupper or tolower 아래와 같이 사용하면 됩니다. R에서 다음과 같이 입력 하시면 도움말을 보실 수 있습니다.

?toupper
?tolower


> test <- c("Test tesT") ##입력
> test ## 확인
[1] "Test tesT"
> tolower(test) ## 소문자로 바꿉니다.
[1] "test test"
> toupper(test) ## 대문자로 바꿉니다.
[1] "TEST TEST"

플라톤의 대화편에서 이데아(희랍어 :ἰδέα, 영어:Idea)을 어떻게 이해할까?

  1. The Principle of Commonality. Wherever several things are F, this is because they participate in or imitate a single Idea of F (Phd. 100c; Men. 72c, 75a; Rep. 5. 476a10, 597c).
  2. The Principle of Separation. The Idea of F is distinct from all the things that are F (Phd. 74c; Smp. 211b).
  3. The Principle of Self-Predication. The Idea of F is itself F (Hp. Ma. 292e; Prt. 230c–e; Prm. 132a–b).
  4. The Principle of Purity. The Idea of F is nothing but F (Phd. 74c; Smp. 211e).
  5. The Principle of Uniqueness. Nothing but the Idea of F is really, truly, altogether F (Phd. 74d, Rep. 5. 479a–d).
  6. The Principle of Sublimity. Ideas are everlasting, they have no parts and undergo no change, and they are not perceptible to the senses (Phd. 78d; Smp. 211b).

엑셀(Excel)의 VLOOKUP 함수 기능을 R에서도 구현해보자!

엑셀(Excel)의 VLOOKUP 함수는 멋진 기능을 하는 함수 입니다. 엑셀(Excel) VLOOKUP함수, HLOOKUP함수 사용법 :: 빌노트의 노트을 보시면, 어떤 기능을 하는 것인지 알 수 있습니다. R에서 할 수 있지 않을까 하는 생각이 들어서 한번 구현해 봤습니다.

R에서는 크게 두 가지 방법이 있는데 여기서는 merge이라는 함수를 사용해봤습니다. 그래서 최종 결과물의 순서가 위 링크에 있는 순서가 다르게 되었습니다.


> a <-c(100,200,300,400,500)
> a
[1] 100 200 300 400 500
> b <- c("컴퓨터","DSLR","냉장고","TV","에어컨")
> b
[1] "컴퓨터" "DSLR" "냉장고" "TV" "에어컨"
> c <- c(700000,450000,2300000,4100000,1400000)
> c
[1] 700000 450000 2300000 4100000 1400000
> items <- data.frame(번호=a, 상품명=b, 단가=c)
> items
번호 상품명 단가
1 100 컴퓨터 700000
2 200 DSLR 450000
3 300 냉장고 2300000
4 400 TV 4100000
5 500 에어컨 1400000
> orderNumbers <- data.frame(번호=c(200,100,500))
> orderNumbers
번호
1 200
2 100
3 500
> Order <- merge(items, orderNumbers, by.x="번호", by.y="번호")
> Order
번호 상품명 단가
1 100 컴퓨터 700000
2 200 DSLR 450000
3 500 에어컨 1400000
> Order$수량 <-c(1,3,1)
> Order$금액 <- (Order$단가 * Order$수량)
> Order
번호 상품명 단가 수량 금액
1 100 컴퓨터 700000 1 700000
2 200 DSLR 450000 3 1350000
3 500 에어컨 1400000 1 1400000
> sum(Order$금액)
[1] 3450000

view raw

VLOOKUP_.R

hosted with ❤ by GitHub