Lovetoken

저는 개발 취향을 가진 데이터 분석가 Jr. 입니다.

Navigation
 » Home
 » About Me
 » Github

R에서 클립보드의 내용물을 끌어오기

16 Apr 2016 » R



편하게 데이터를 R에서 불러들이기 위해 간편한 방법이 없을까?
보통 csv파일을 읽어들이기 위해서 csv파일이 있는 경로를 알고 그경로를 입력해 주어야 한다.
아래의 코드처럼 말이다.

data <- read.csv("./Data/Test.csv")

워킹디렉토리에서 Data 폴더의 Test.csv 을 읽어들이는 코드이다.
하지만 간단히 눈앞에 있는 데이터를 R로 불러들이기 위해선 그 데이터 파일의 path 를 알아야 하는 것이 귀찮을 수 있다.
이러한 귀차니즘까지 발동한다면 Clipboard 를 이용하여 원하는 데이터를 로드하는 것이 현명한 것 같다.



on Windows

예를 들어 아래의 모습처럼 우리가 사용하고자 하는 Test.csv 파일이 MS office Excel 에서 열린 상황의 모습이고,
이것을 R에서 빨리 불러오고 싶다 가정한다.

다음과 같은 스텝을 따른다.

  1. Test.csv 파일의 데이터셋을 전체 선택하여 Ctrl + C 를 한다.
  2. R로 되돌어가 read.table("clipboard") 를 실행하여 복사했던 데이터가 제대로 불러와 졌는지 확인한다.
  3. 필요에 따라 read.table() 함수의 header, sep 인자값을 바꾸어 불러온다.

직접 해본 결과의 스크린샷이다.

read.table("clipboard")
##     V1   V2
## 1  Var Test
## 2    a   14
## 3    b   25
## 4    d  646
## 5    e  773
## 6    g   12
## 7    n   45
## 8    h    3
## 9    s    6
## 10   x   72
read.table("clipboard", header = T)
##   Var Test
## 1   a   14
## 2   b   25
## 3   d  646
## 4   e  773
## 5   g   12
## 6   n   45
## 7   h    3
## 8   s    6
## 9   x   72



on Mac

맥이용자라면 윈도우의 "clipboard" 와 같은 약속어로 클립보드 내용물을 불러들일 수 없는것을 확인했다.
"clipboard" 대신 pipe("pbpaste") 을 이용한다.

read.table(pipe("pbpaste"))
##     V1   V2
## 1  Var Test
## 2    a   14
## 3    b   25
## 4    d  646
## 5    e  773
## 6    g   12
## 7    n   45
## 8    h    3
## 9    s    6
## 10   x   72
read.table(pipe("pbpaste"), header = T)
##   Var Test
## 1   a   14
## 2   b   25
## 3   d  646
## 4   e  773
## 5   g   12
## 6   n   45
## 7   h    3
## 8   s    6
## 9   x   72

물론 Clipboard 로 데이터를 불러오는 것 이므로 데이터 전체가 아닌 일부분만을 복사하는 것도 가능하다. 아래의 스크린샷은 데이터의 앞 3개의 필드를 복사하여 R로 불러들여본 결과이다.

이처럼 Clipboard 를 이용하게 되면 사용하고 싶은 데이터를 선택하여 R로 마치 드레그 하는 방식과 같아진다.