본문 바로가기
R/Data Operation

R 내장데이터셋 Built-in Dataset - attach/detach

by 통계열등생 2020. 12. 12.
반응형

 ◎ 내장 데이터셋

 

R에서 기본으로 제공하는 데이터셋이 있다. 이 내장 데이터셋은 보통 교육이나 연습 목적으로 많이 활용된다. 그중 가장 많이 활용되는 데이터는 역시 iris일 것이다.

 

 

  • Dataset 목록
> data()

콘솔창에 data()를 입력하면 새창이 열리고, R에서 제공하는 내장데이터셋의 목록과 간단한 소개정도가 나열되어 있는 목록을 볼 수 있다. 참고로 Rstudio를 IDE(통합개발환경)로 사용하고 있다.

 

 

  • Dataset 불러오기
> iris
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
1            5.1         3.5          1.4         0.2     setosa
2            4.9         3.0          1.4         0.2     setosa
3            4.7         3.2          1.3         0.2     setosa
4            4.6         3.1          1.5         0.2     setosa
5            5.0         3.6          1.4         0.2     setosa
6            5.4         3.9          1.7         0.4     setosa
7            4.6         3.4          1.4         0.3     setosa
8            5.0         3.4          1.5         0.2     setosa
9            4.4         2.9          1.4         0.2     setosa
10           4.9         3.1          1.5         0.1     setosa
...

사용하고자 하는 내장데이터셋을 불러오는 방법은 간단하다. 라이브러리에 올릴 필요도 없이 그냥 데이터셋의 이름을 콘솔창에 입력하면 된다.

 

 

  • Dataset 설명
> help(iris)
> ?iris

help() 함수나 ?로 데이터셋의 도움말을 열어볼 수 있다. 데이터셋의 도움말에는 해당 데이터가 어떤 데이터이고, 어떤 구조로 이루어져 있는지에 대한 설명이 쓰여있다. 

 

 

 

 ◎ attach/detach

 

attach()와 detach()는 데이터프레임의 칼럼이나 리스트의 키들을 직접 접근할 수 있게 해주는 함수이다.

attach() 함수로 데이터를 R 검색 경로에 추가하고, detach() 함수로 경로에서 제거한다.

 

> mean(iris[,1])
[1] 5.843333
> mean(iris$Sepal.Length)
[1] 5.843333
> mean(Sepal.Length)
Error in mean(Sepal.Length) : 객체 'Sepal.Length'를 찾을 수 없습니다

데이터프레임의 경우 데이터셋의 이름 뒤에 대괄호나 달러사인($)을 사용해 칼럼에 접근할 수 있고, 칼럼이름을 단독으로 사용해 접근하려하면 Error가 발생한다.

 

> attach(iris)
> mean(Sepal.Length)
[1] 5.843333
> detach(iris)

attach() 함수안에 데이터셋의 이름을 입력하면 칼럼이름을 직접 접근할 수 있게 된다.

 

> search()
 [1] ".GlobalEnv"        "tools:rstudio"     "package:stats"    
 [4] "package:graphics"  "package:grDevices" "package:utils"    
 [7] "package:datasets"  "package:methods"   "Autoloads"        
[10] "package:base"     
> attach(iris)
> search()
 [1] ".GlobalEnv"        "iris"              "tools:rstudio"    
 [4] "package:stats"     "package:graphics"  "package:grDevices"
 [7] "package:utils"     "package:datasets"  "package:methods"  
[10] "Autoloads"         "package:base"     
> detach(iris)

search() 함수는 R 객체에 대한 검색 경로들을 반환한다.

attach() 함수에 iris 데이터를 입력하니 R 검색 경로에 iris가 추가된 것을 알 수 있고, 그래서 iris의 칼럼들에 직접 접근할 수 있는 것이다.

 

> data = iris[1:3,]
> data
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
> attach(data)
> Sepal.Length[1] = 0
> Sepal.Length
[1] 0.0 4.9 4.7
> detach(data)
> data
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa

이 함수들의 또하나의 특징은 attach() 함수를 사용한 후부터 detach() 함수를 사용하기까지 이루어지는 데이터에 관한 수정들은 원래 데이터프레임에 영향을 주지 않는다는 것이다.

첫번째 칼럼의 첫번째 원소를 0으로 치환하였으나 원래 데이터에서는 변화가 없는 것을 볼 수 있다.

 

 

 

 

 

<R 내장데이터셋 Built-in Dataset - attach/detach>

반응형

댓글