데이터 프레임은 R에서 가장 많이 사용되는 데이터 구조 중 하나로, 행과 열로 구성된 2차원 데이터 구조입니다.
각각의 열은 벡터로 구성되며, 서로 다른 데이터 유형을 가질 수 있습니다.
데이터 프레임은 주로 통계 분석이나 데이터 과학 작업에서 사용됩니다.
데이터 프레임 생성 (data.frame() 함수 사용)
data.frame() 함수는 R에서 데이터 프레임을 생성할 때 사용되는 가장 기본적인 함수입니다.
여러 벡터를 모아 데이터 프레임으로 변환할 수 있습니다.
기본적인 데이터 프레임 생성
# 벡터로 데이터 프레임 생성
name <- c("John", "Jane", "Doe")
age <- c(25, 30, 22)
gender <- c("M", "F", "M")
# 데이터 프레임 생성
df <- data.frame(name, age, gender)
print(df)
위의 코드에서 name, age, gender라는 세 개의 벡터를 결합하여 데이터 프레임을 생성했습니다.
각 벡터는 데이터 프레임의 열이 되며, 행은 벡터의 요소에 해당합니다.
위에서 생성한 데이터프레임 df는 다음과 같이 생겼습니다.
# 데이터 프레임의 구조
name age gender
1 John 25 M
2 Jane 30 F
3 Doe 22 M
열과 행의 추가, 삭제, 수정
데이터 프레임을 조작하는 가장 기본적인 작업은 열과 행을 추가하거나 삭제하고, 데이터를 수정하는 것입니다.
데이터 프레임 열 접근
- $ 연산자 : 특정 열에 접근합니다.
df$name # "John", "Jane", "Doe"
- 대괄호 연산자 : [row, column] 형식으로 접근합니다.
df[1, ] # 첫 번째 행
df[, 2] # 두 번째 열
df[1, 3] # 1행 3열의 값
열 추가
새로운 열을 데이터 프레임에 추가할 수 있습니다.
# 새로운 열 추가
df$height <- c(175, 160, 180) # height 열 추가
df["weight"] <- c(70, 55, 80) # 다른 방식으로 weight 열 추가
print(df)
행 추가
rbind() 함수를 사용하여 새로운 행을 추가할 수 있습니다.
# 새로운 행 추가
new_row <- data.frame(name = "Alice", age = 28, gender = "F", height = 165, weight = 60)
df <- rbind(df, new_row)
print(df)
열과 행 삭제
열과 행을 삭제할 때는 NULL 값을 할당하거나 subset() 함수를 사용할 수 있습니다.
# 열 삭제
df$height <- NULL # height 열 삭제
# 행 삭제
df <- df[-4, ] # 4번째 행 삭제
print(df)
데이터 수정
기존 열 또는 행의 데이터를 수정할 수 있습니다.
df$age[2] <- 31 # 2번째 행의 age 열 수정
df$name <- c("Johnathan", "Janet", "Doe") # name 열 전체 수정
print(df)
특정 열 또는 행 선택, 필터링 (subset() 함수 사용)
데이터 프레임에서 특정 조건을 만족하는 행이나 열을 선택하거나 필터링할 때 subset() 함수를 사용할 수 있습니다.
특정 열 선택
subset() 함수를 사용하여 특정 열을 선택할 수 있습니다.
# 특정 열만 선택
df_name_age <- subset(df, select = c(name, age))
print(df_name_age)
조건에 따른 행 선택
특정 조건을 만족하는 행만 선택할 수 있습니다.
# 나이가 25 이상인 행만 선택
df_over_25 <- subset(df, age >= 25)
print(df_over_25)
# 혹은 이 방법도 가능하다.
df_over_25 <- df[df$age >= 25, ]
print(df_over_25)
데이터 프레임의 행과 열 이름 설정
- 행 이름 설정:
rownames(df) <- c("Row1", "Row2", "Row3")
- 열 이름 설정:
colnames(df) <- c("Name", "Age", "Gender", "Height", "Weight")
데이터 프레임 조작
행 추가
rbind() 함수를 사용하여 데이터 프레임에 행을 추가할 수 있습니다.
new_row <- data.frame(Name = "Alice", Age = 28, Gender = "F", Height = 165, Weight = 60)
df <- rbind(df, new_row)
print(df)
열 추가
cbind() 함수를 사용하여 데이터 프레임에 열을 추가할 수 있습니다.
new_col <- c("A", "B", "C", "D")
df <- cbind(df, Grade = new_col)
print(df)
데이터 프레임 정렬
order() 함수를 사용하여 특정 열을 기준으로 데이터 프레임을 정렬할 수 있습니다.
df_sorted <- df[order(df$Age), ]
print(df_sorted)
데이터 프레임에서 NA 값 처리
NA 값(결측치)을 처리하는 다양한 방법이 있습니다.
- NA 값 제거:
df_no_na <- na.omit(df) # NA 값이 있는 행 제거
- NA 값을 다른 값으로 대체:
df$Weight[is.na(df$Weight)] <- mean(df$Weight, na.rm = TRUE) # NA 값을 평균으로 대체
str() 함수로 데이터 프레임 구조 확인
str() 함수는 데이터 프레임의 구조를 확인할 때 유용합니다. 데이터 프레임의 각 열의 데이터 유형, 길이, 샘플 데이터를 확인할 수 있습니다.
str(df)
str() 함수는 데이터 프레임의 각 열에 대한 요약 정보를 제공하여, 데이터 유형(예: numeric, character, factor 등)과 각 열의 첫 몇 개의 데이터를 보여줍니다. 이 함수는 데이터 구조를 파악하고 문제를 진단하는 데 매우 유용합니다.
데이터프레임의 기본 분석
그룹별 요약 통계
aggregate() 함수를 사용하여 그룹별 요약 통계를 계산할 수 있습니다.
aggregate(Weight ~ Gender, data = df, mean) # 성별로 Weight 평균 계산
apply 계열 함수 사용
- apply(): 행 또는 열에 함수를 적용합니다.
apply(df[, c("Height", "Weight")], 2, mean) # Height와 Weight 열의 평균 계산
- lapply(), sapply(): 리스트 또는 데이터 프레임의 각 요소에 함수를 적용합니다.
데이터 프레임은 R에서 데이터 분석을 수행할 때 핵심적인 역할을 하는 데이터 구조입니다.
이 글에서 소개한 다양한 데이터 프레임 조작 방법을 익히면, 데이터 처리와 분석을 더욱 효율적으로 수행할 수 있습니다.
이를 통해 복잡한 데이터도 쉽게 관리하고 분석할 수 있게 되며, 데이터 과학 작업에서 한층 더 높은 생산성을 달성할 수 있을 것입니다.
감사합니다
'프로그래밍 언어 > R' 카테고리의 다른 글
14. R 함수를 이용한 데이터 시각화 2️⃣ (ggplot2 패키지) (0) | 2024.09.05 |
---|---|
13. R 함수를 이용한 데이터 시각화 1️⃣ (기본 그래픽 시스템) (1) | 2024.09.03 |
11. R의 기본 문법과 데이터 조작 심화 - 벡터와 리스트 조작 (0) | 2024.08.29 |
10. R의 기본 문법과 데이터 조작 심화 - 조건문과 반복문 이해 (0) | 2024.08.27 |
09. R에서 사용하는 기본 함수 이해 - 사용자 정의 함수 생성 (0) | 2024.08.25 |
데이터 분석을 공부하고 카페를 열심히 돌아다니는 이야기
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!