데이터 > 데이터 불러오기 > 텍스트 파일, 클립보드 또는 URL에서...

Data > Import data > from text file, clipboard, or URL...

Linux 사례 (MX 21)

개인적인 경험과 판단이지만, R에서 외부 데이터 파일을 불러오는 것을 초급자들은 너무 어려워한다. 쉽지 않다. 분석과 시각화 작업을 하기에 앞서서 자료 불러오기가 어려우니, 많은 사람이 쉬운 GUI 분석도구로 되돌아가려고 한다. read.table() 계열 함수가 어렵다.

 

R Commander는 이러한 불편함을 최소화하기 위하여 인자들을 쉽게 선정하도록 화면 구성이 되어있다. 하지만, 먼저 알아야할 것이 있다. R Commander에서 불러오는 객체, 다시말해 외부 데이터 파일로부터 불러올 대상은 반드시 데이터 프레임 형식을 취한다. 변수이름을 갖고, 엑셀과 같은 스프레드시트 형식으로 사례값들이 배열되어 있는 것만 GUI 메뉴로 작업할 수 있다. 만약, 데이터프레임 형식이 아니라면, 일반 콘솔 환경과 같은 조건에서 Command Line 작업을 해야한다.

 

Linux 사례 (MX 21)

 

- data set의 기본이름은 Dataset이다. 원하는 것으로 이름을 바꿀 수 있다. 가급적 영문을 추천한다. 행여 다른 시스템에서 파일이름의 호환문제를 겪을 수 있기 때문이다. (위의 메뉴 창에서는 Nations라고 데이터셋의 이름을 변경했다.)

- 결측치 표시는 NA가 기본설정이다.

- 외부 파일을 불러올지, 메모리(clipboard)에서 불러올지, 외부인터넷 경로에서 내려받을 지를 선택할 수 있다.

- 필드 구분자를 선택할 수 있다. 사실, 필드 구분자가 초급자에게는 어렵다. 빈 공백, commas, 세미 콜론, 탭 등이 사용되기 때문에 혼란스러울 수 있다. 일반적으로 .txt로 되어 있는 것은 빈 공백, .csv로 되어 있는 파일은 comman인 경우가 흔하다. 하지만, 정확한 내부 규칙이 없기 때문에 어려개를 번갈아 선택해봐야할 수 있다.

- Decimal-Point의 경우, 한국은 미국스타일의 Period[.]를 관행적으로 쓰기 때문에 기본설정을 따르면 된다.

 

Linux 사례 (MX 21)

Nations <- read.table("/home/jhshin/다운로드/Rcmdr/inst/etc/Nations.txt", header=TRUE, 
  stringsAsFactors=TRUE, sep="", na.strings="NA", dec=".", strip.white=TRUE)

Nations라는 이름으로 불러온 데이터셋이 활성화되어 R Commander 에서 활용할 수 있는 환경이 시작된다.


사례를 하나 소개한다. libreOffice Calc에서 엑셀파일을 불러오고, 또 이것의 첫 시트를 clipboard에 복사하고, R Commander로 불러온다고 생각해보자.

 

- Locatioin of Data File에서 Clipboard를 선택하고,

- Field Separator에서 Tabs(탭)을 선택해야 한다. 기본설정을 바꿔야한다는 뜻이다.

 

한가지 유의해야할 것은 변수이름이 바뀌는 규칙이 있다는 점이다.

- R에서는 괄호를 변수이름에 넣을 수 없다. 앞뒤 괄호는 ..으로 바뀐다. '연락처(대표)'는 '연락처.대표.'로 바뀐다.

 

데이터 파일이 (어떤 규칙성에 의하여 성공적으로) 불러와지면, 상단의 R 아이콘 옆에 Data set:에 파란 색의 객체이름이 보인다. 기본설정이라면 Dataset이 될 것이다.


?read.table  # utils 패키지의 read.table 도움말 보기

## using count.fields to handle unknown maximum number of fields
## when fill = TRUE
test1 <- c(1:5, "6,7", "8,9,10")
tf <- tempfile()
writeLines(test1, tf)

read.csv(tf, fill = TRUE) # 1 column
ncol <- max(count.fields(tf, sep = ","))
read.csv(tf, fill = TRUE, header = FALSE,
         col.names = paste0("V", seq_len(ncol)))
unlink(tf)

## "Inline" data set, using text=
## Notice that leading and trailing empty lines are auto-trimmed

read.table(header = TRUE, text = "
a b
1 2
3 4
")

 

 

 

 

'Data > Import data' 카테고리의 다른 글

from STATA data set...  (0) 2019.05.12
from Minitab data set...  (0) 2019.05.12
from SAS b7dat file...  (0) 2019.05.12
from SAS xport file...  (0) 2019.05.12
from SPSS data set...  (0) 2019.05.12

데이터 > 데이터셋 병합하기...

Data > Merge data sets...

 

Linux 사례 (Ubuntu 18.04)

두 개 이상의 데이터셋이 객체로서 메모리에 있는 경우 (R Commander에서 인식하는 경우), Merge data sets...라는 기능을 이용할 수 있다. 데이터셋이 없거나 하나인 경우, 회색의 불활성 메뉴로서 표시된다.

 

Linux 사례 (Ubuntu 18.04)

 

- 행 병합하기는 두개의 데이터셋을 위, 아래로 이어 붙인다.

- 열 병합하기는 두개의 데이터셋을 왼쪽, 오른쪽으로 이어 붙인다.

 

'행 병합하기'를 하려면 동일한 변수들을 갖고 있어야 하며, '열 병합하기'를 하려면 동일한 사례들을 갖고 있어야 한다.

carData 패키지에 있는 Prestige 데이터셋으로 연습해보자.

https://rcmdr.tistory.com/143

 

Prestige 데이터셋

carData > Prestige data(Prestige, package="carData") help("Prestige")

rcmdr.kr

Prestige 데이터셋의 하위셋 Prestige.sub1과 Prestige.sub2 두개를 만들자.

data(Prestige, package="carData")    # Prestige 데이터셋 불러오기
Prestige.sub1 <- Prestige[-c(61:nrow(Prestige)),] 
                                     # Prestige 데이터셋에서 사례 지우기1 (61부터 끝까지)
Prestige.sub2 <- Prestige[-c(1:60),] # Prestige 데이터셋에서 사례 지우기2 (1부터 60까지)

https://rcmdr.tistory.com/48 <- 화면의 메뉴를 이용하여 사례 제거를 연습할 수 있다.

 

10. Remove row(s) from active data set...

활성 데이터셋에서 행(rows) 제거하기... Data > Active data set > Remove row(s) from active data set... 활성 데이터셋에서 행을 제거하는 기능이다. 대화창이 열리면 사용자는 제거할 행의 정보를 알고 있는..

rcmdr.kr

아래의 내용은 Prestige.sub1과 Prestige.sub2를 병합하고자 하는 연습이다. <첫째 데이터셋(하나 선택)>과 <둘째 데이터셋 (하나 선택)>에서 데이터셋을 하나씩 선택하고, 공통의 데이터 구조를 가진 두개의 데이터셋을 이어붙이는 <행 병합하기>의 병합 방향을 선택해보자.

Linux 사례 (MX 21)

MergedDataset <- mergeRows(Prestige.sub1, Prestige.sub2, common.only=FALSE)

?mergeRows  # RcmdrMisc 패키지의 mergeRows 도움말 보기

if (require(car)){
    data(Duncan)
    D1 <- Duncan[1:20,]
    D2 <- Duncan[21:45,]
    D <- mergeRows(D1, D2)
    print(D)
    dim(D)
}

데이터 > 데이터셋 적재하기...

Data > Load data set...

 

linux 사례 (Ubuntu 18.04)

 

저장된 R 데이터 파일을 메모리로 불러오는 기능이다. 확장자 .RData, .RDA 등으로 저장된 파일을 찾는다.

 

Linux 사례 (Ubuntu 18.04)

?load  # 데이터셋 또는 작업공간 불러오기 도움말 보기

※ R Commander의 메뉴에 있는 '데이터 > 데이터셋 적재하기...'기능은 '단일' 데이터셋을 호출하는데 사용한다. 여러 개의 객체를 담고 있는 작업공간을 저장한 .RData 파일은 입력창에 load("작업공간파일.RData")를 직접 입력하고 실행해야 한다. 

## save all data
xx <- pi # to ensure there is some data
save(list = ls(all = TRUE), file= "all.rda")
rm(xx)

## restore the saved values to the current environment
local({
   load("all.rda")
   ls()
})

xx <- exp(1:3)
## restore the saved values to the user's workspace
load("all.rda") ## which is here *equivalent* to
## load("all.rda", .GlobalEnv)
## This however annihilates all objects in .GlobalEnv with the same names !
xx # no longer exp(1:3)
rm(xx)
attach("all.rda") # safer and will warn about masked objects w/ same name in .GlobalEnv
ls(pos = 2)
##  also typically need to cleanup the search path:
detach("file:all.rda")

## clean up (the example):
unlink("all.rda")


## Not run: 
con <- url("http://some.where.net/R/data/example.rda")
## print the value to see what objects were created.
print(load(con))
close(con) # url() always opens the connection

## End(Not run)

편집하기 > 창 지우기
Edit > Clear window

Linux 사례 (Ubuntu 18.04)


입력창 또는 출력창이 복잡해 보일 경우, 그래서 그 창을 지우고 다시 새롭게 입력창에서 작업하거나, 출력창으로 보고 싶을 때 사용하는 기능이다. 입력된 스크립트를 정돈하여 저장하거나, 출력물을 정돈하여 출력파일을 만들 때 활용된다.

예를 들어, 데이터셋을 불러오고, 데이터의 내부구조를 살펴보고, 요약정보를 보고자 한다면 다음과 같은 스크립트를 입력하고 또 출력해서 보게될 것이다:

data(Prestige) # car 패키지의 Prestige 데이터셋 불러오기
str(Prestige) # Prestige 데이터셋의 내부구조 보기
summary(Prestige) # Prestige 데이터셋 요약정보 보기

이 때, <창 지우기> 기능을 사용하면 창에 기록된 내용이 지워진다.

Linux 사례 (Ubuntu 18.04) : 입력창 지우기

Linux 사례 (Ubuntu 18.04) : 출력창 지우기


지워지는 창은 마우스의 커서가 있는 곳이다. 입력창에 마우스 커서가 있는 경우에 <창 지우기>를 하면 입력창이 지워지고, 출력창에 마우스 커서가 있는 경우에 <창 지우기>를 하면 출력창이 지워진다.

편집하기 > 다시하기
Edit > Redo

Undo 명령으로 앞 단계로 (후퇴하여) 되돌아간 상태에서 다시 앞의 단계로 전진하기 위하여 사용한다. Undo는 계속 뒤로 돌아가는 명령이며, Redo는 계속 앞으로 되돌아 나아가는 명령이다.

편집하기 > 뒤돌리기
Edit > Undo

바로 앞 단계의 작업으로 되돌아간다.

Linux 사례 (Ubuntu 18.04)

입력창의 내용이 지워졌다고 가정하자. (가슴이 철렁할 것이다) 어떤 내용을 입력했는지 기억하기 어렵고, 다시 입력하는데 불편함을 느낄 것이다. 이 때 <실행취소하기> 기능을 사용할 수 있다. 앞선 화면에서 지워진 입력창의 내용이 이 기능을 이용하면 다시 되살아난다:

Linux 사례 (Ubuntu 18.04)


간혹, 복잡해진 출력창을 지우려다가 입력창을 지우는 경우가 있을 수 있다. 마우스의 커서가 있는 곳이 지워지기 때문이다. 이 때 <실행취소하기> 기능을 이용하여 잘못 지워진 창의 내용을 되살릴 수 있다.

편집하기 > 모두 선택하기
Edit > Select all

스크립트창의 내용 모두를 선택할 수 있다.

편집하기 > 찾기
Edit > Find...

스크립트 창에서 원하는 문자열의 위치를 찾는다. 긴 스크립트인 경우, 효과적으로 사용할 수 있다.

편집하기 > 삭제하기
Edit > Delete

마우스 또는 단축키 조합으로 스크립트의 일부분에 블록을 씌운다. 그 다음 '편집하기 >삭제하기' 메뉴 기능을 선택하면 해당 블록 부분이 삭제된다.

편집하기 > 붙이기
Edit > Paste

마우스 또는 단축키 조합으로 스크립트의 일부분에 블록을 선택하고, 복사했다고 하자. 원하는 위치에 마우스나 커서를 갖다놓고 그 다음 '편집하기 > 붙이기' 메뉴 기능을 선택하면 해당 블록 부분이 붙여진다.

+ Recent posts