해당 포스트는 네이버지식인을 통해 질문 받은 "데이터 프레임 특정 행/열 추출하는 방법"에 대한 답변을 공유하는 글입니다.
질문
R 데이터프레임 특정 행/열 추출 질문..
1번 사진을 2번 사진처럼 바꾸고 싶은데 어떻게 해야할까요?
풀이
아래에서는 R에서 제공하는 subset()
함수를 이용해 subset()
함수는 데이터 프레임에서 조건에 맞는 행을 추출할 수 있도록 도와주는 함수로, 간단하고 유용한 함수 중 하나입니다.
1. 데이터 생성
먼저 질문에서 언급된 사진의 데이터를 생성하겠습니다. 생성된 데이터는 mydata
변수에 저장합니다.
mydata <- data.frame(
name = c("철수", "영희", "길동", "상철", "미숙", "영철", "영우"),
gender = c("M", "F", "M", "M", "F", "M", "M"),
funny = c("High", "Med", "Low", "High", "Med", "Med", "High"),
age = c(21, 21, 22, 30, 25, 25, 28),
age.month = c(252, 252, 264, 360, 300, 300, 336)
)
mydata
name gender funny age age.month 1 철수 M High 21 252 2 영희 F Med 21 252 3 길동 M Low 22 264 4 상철 M High 30 360 5 미숙 F Med 25 300 6 영철 M Med 25 300 7 영우 M High 28 336
2. 서브셋 데이터 추출
생성된 mydata
변수에서 질문에서 요구되는 형태로 서브셋 데이터를 추출하는 코드는 아래와 같습니다. 아래 코드는 name
이 "영희" 또는 "미숙"인 행에서 name
과 age
컬럼만 추출합니다.
subset(mydata, name %in% c("영희", "미숙"), select = c(name, age))
name age 2 영희 21 5 미숙 25
위 출력 결과를 보면, 질문에서 요구된 바와 같이 "영희"와 "미숙"의 name
과 age
열이 추출된 것을 볼 수 있습니다.
마무리
아번 포스트에선는 subset()
함수는 데이터 프레임에서 필요한 부분을 간단하게 추출할 수 있도록 도와주는 유용한 함수로, 조건에 맞는 행을 추출할 때, select
매개변수를 이용해 원하는 열을 선택할 수 있습니다. 이를 통해, 데이터 프레임에서 필요한 정보를 빠르고 간편하게 추출할 수 있습니다.
관련 링크
[1] 네이버 지식인
[2] [R] as.factor 함수로 데이터셋 분할하기
[3] [R] 3개 이상의 데이터 프레임 병합하기 (merge, left_join)