데이터 프레임 다루기

ddoddo·2023년 1월 2일
0

데이터분석 with R

목록 보기
2/21

데이터 프레임이란?

R에서 다룰 수 있는 데이터 타입은 다양하지만 주로 사용하는 것은 데이터 프레임(Data Frame)이다. 데이터 프레임은 엑셀의 시트와 같다. 행(row)열(column)이 존재하는 형태이다.

위 창은 스크립트 창이라고 한다. 코드를 입력한 후 Ctrl+Enter를 하면 콘솔 창에 해당 코드가 실행되고 결과가 나타난다.


데이터 프레임 다루기

iris 데이터 셋을 통해 실습을 해보자.

열 이름 변경하기

df <- iris
names(df)

# 열 이름 변경
names(df) <- c('sl', 'sw', 'pl', 'pw', 'sp')
# 결과
> names(df)
[1] "sl" "sw" "pl" "pw" "sp"

주의할 점은 Python에서는 0부터 시작하지만, R에서는 1부터 시작한다.

# 5번째 열 이름 변경
names(df)[5] <- 's'
> names(df)
[1] "sl" "sw" "pl" "pw" "s" 

특정 데이터만 추출하기

특정 데이터만 추출하기 위해서는 subset() 함수를 이용한다.

# 사용법
subset(data, condition)
# df에서 s가 versicolor인 대상만 추출
df_1 <- subset(df, s == 'versicolor')

# df에서 sl이 6보다 크고, s가 versicolor인 대상만 추출
df_2 <- subset(df, sl > 6 & s == 'versicolor')

# df에서 s가 setosa인 sl, sw, s열만 추출
df_3 <- subset(df, s == 'setosa', select=c(sl, sw, s))

# df에서 s열만 제외하고 추출
df_4 <- subset(df, select=-c(s))

연산자는 Python과 동일하게 사용된다. >, <, >=, <=, ==, !=, &, | 등등


데이터 타입

  • 스칼라 : 단일값
  • 벡터 : 1차원
  • 행렬 : 2차원
  • 데이터 프레임 : 2차원
  • 배열 : 2차원 이상
  • 리스트 : 2차원 이상

# 벡터 생성
v <- c(1, 2, 3, 4, 5, 6, 7, 8, 9) 

# 3x3 행렬 생성
m <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow=3) 

# 데이터 프레임 생성
d <- data.frame(x=c(1, 2, 3), y=c(4, 5, 6), z=c('a', 'b', 'c')) 

# 배열 생성
a <- array(1:18, dim=c(2, 3, 3)) 

# 리스트 생성
l <- list(name='Jon Snow', family=c('Stark', 'Targaryen')) 
# 결과
> v
[1] 1 2 3 4 5 6 7 8 9

> m
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

> d
  x y z
1 1 4 a
2 2 5 b
3 3 6 c

> a
, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

, , 3

     [,1] [,2] [,3]
[1,]   13   15   17
[2,]   14   16   18

> l
$name
[1] "Jon Snow"

$family
[1] "Stark"     "Targaryen"

0개의 댓글