R의 데이터 종류에는 스칼라, 벡터, 리스트, 행렬, 배열, 데이터 프레임이 있다. 이번 포스팅에는 데이터프레임를 알아보자.
[데이터프레임]
데이터 프레임은 데이터 유형에 상관없이 2차원 형태의 데이터 구조를 말한다. 벡터, 행렬로 만들 수 있다.
[벡터로 데이터 프레임을 만든 예제]
num <- c(1,2,3)
name <- c("Lee","Kim","Park")
score <- c(100,90,80)
df = data.frame(num,name,score)
df
# num name score
# 1 1 Lee 100
# 2 2 Kim 90
# 3 3 Park 80
data.frame()을 사용하여 데이터 프레임을 만든다.
데이터 프레임안에 길이가 동일한 벡터를 넣어주면된다. 벡터의 이름은 컬럼명이 된다.
v1 <- c(1,2,3)
v2 <- c("Lee","Kim","Park")
v3 <- c(100,90,80)
df = data.frame(num=v1,name=v2,score=v3)
df
# num name score
# 1 1 Lee 100
# 2 2 Kim 90
# 3 3 Park 80
# colnames()를 사용해서 이름 바꾸기
colnames(df) <- c("one","two","three")
df
# one two three
# 1 1 Lee 100
# 2 2 Kim 90
# 3 3 Park 80
data.frame()에서 칼럼명을 지정할 수 있고 colnames()를 사용해서도 칼럼명을 지정할 수 있다.
[행 이름 바꾸기]
v1 <- c("one","two","three")
v2 <- c("Lee","Kim","Park")
v3 <- c(100,90,80)
df = data.frame(v1,v2,v3)
rownames(df) <- df[,1] # 첫번째 컬럼을 행 이름으로 사용
df[,-1] # 첫번째 컬럼 제거
# v2 v3
# one Lee 100
# two Kim 90
# three Park 80
[데이터 프레임 접근]
v1 <- c(1,2,3)
v2 <- c("Lee","Kim","Park")
v3 <- c(100,90,80)
df = data.frame(num=v1,name=v2,score=v3)
df
# num name score
# 1 1 Lee 100
# 2 2 Kim 90
# 3 3 Park 80
df$name # [1] "Lee" "Kim" "Park"
df[1,] # 첫번째 행 가져옴
# num name score
# 1 1 Lee 100
df[c(1,3),] # 1,3번째 행 가져옴
# num name score
# 1 1 Lee 100
# 3 3 Park 80
df[df$score == 100, ] # score가 100인 행만 가져옴
# num name score
# 1 1 Lee 100
[merge를 사용하여 데이터 프레임 병합하기]
# merge : 두 개 이상의 data.frame을 병합
height <- data.frame(id=c(1,2,2),h=c(180,175,178))
weight <- data.frame(id=c(1,2,3),w=c(80,75,88))
height
# id h
# 1 1 180
# 2 2 175
# 3 2 178
weight
# id w
# 1 1 80
# 2 2 75
# 3 3 88
merge(height,weight) # inner join 과 비슷
# id h w
# 1 1 180 80
# 2 2 175 75
# 3 2 178 75
merge(height,weight, by.x = "id") # id를 기준으로 병합 , 위와 같음
# id h w
# 1 1 180 80
# 2 2 175 75
# 3 2 178 75
merge(height,weight, by.x = "id", by.y = "id")
# id h w
# 1 1 180 80
# 2 2 175 75
# 3 2 178 75
df <- merge(height,weight,all=T) # outer join과 비슷
df
# id h w
# 1 1 180 80
# 2 2 175 75
# 3 2 178 75
# 4 3 NA 88
'데이터 분석 > R' 카테고리의 다른 글
[R] 파일 불러오기/ 내보내기 - read.table(), read.csv(), write.table(), write.csv(), write.xlsx() (0) | 2022.01.25 |
---|---|
[R] R 데이터 종류 #2 - 리스트, 행렬, 배열 (0) | 2022.01.21 |
[R] R 데이터 종류 #1 - 스칼라, 벡터 (0) | 2022.01.21 |