본문 바로가기
R연습 200제/02_00. (R)데이터객체,벡터,행렬

제4강 4.1 데이터프레임 다루기

by 통컨이 2020. 7. 25.
728x90

이번 시간은 데이터분석에서 가장 많이 사용되는 데이터프레임에 대하여 상세히 다룹니다.

그리고 5번째 데이터객체인 리스트에 대해서 설명합니다.
그리고 5가지 객체를 다루면서 유의해야 할 사항들을 설명합니다.

 

외부 파일이나 엑셀 데이터를 R로 불러들일 때 기본적으로 데이터프레임 형태로 지원됩니다.

데이터프레임은 행렬(matrix)과 비슷한 형태이지만, 데이터프레임은 열마다 자료형이 달라질 수 있습니다.

열로는 변수명을 가지고 행으로는 관찰치의 개념을 가지고 있는 것입니다.

데이터 프레임은 변수와 행으로 이루어진 객체로 엑셀, SAS SPSS 등에서 많이 사용되는 형태입니다.

벡터와 행렬을 이용하여 데이터프레임을 만들 수 있고, 외부 텍스트 데이터를 불러와 만들 수 있습니다

데이터프레임에서 한 열을 추출하여 벡터를 만들 수 있습니다.

 

데이터프레임에서 헷갈리는 부분이 요소 접근하기입니다.

설문지 데이터 survey_nh.csv 파일을 이용할 때 각 변수에 접근하는 방법으로 다음과 같은 것이 있습니다.

 

survey$age        벡터

survey[“age”]      데이터프레임

survey[[“age”]]    벡터

survey[,3]          벡터

survey[3]          데이터프레임

survey[[3]]        벡터

 

1. 데이터프레임 만들기

 실제로 데이터를 분석할 때에 데이터프레임이 가장 많이 사용됩니다.

외부파일에서 읽어 들이거나, 벡터 또는 행렬 등에서 데이터프레임을 만드는 방법에 대하여 설명합니다.

 

# (1.1) 벡터들을 이용해 data.frame 만들기

id <- c('A001','A002','A003','A004','A005','A006')
gender <- c('F','F','F','M','M',"M")
(wei <- c(65, 66, 69, 67, 68, 72))
(hei <- c(171,172,176,173,177,178))
age <- c(23,24,38,43,40,42)
dataf01 <- data.frame(id,gender,wei,hei,age)
dataf01
 

 

# (1.2) 곧바로 데이터프레임을 만들 때

dataf02 <- data.frame(
gender = c('F','F','F','M','M',"M"),
wei = c(65, 66, 69, 67, 68, 72),
hei = c(171,172,176,173,177,178),
age = c(23,24,38,43,40,42))
 dataf02

 

# (2) 다른 데이터객체서 데이터프레임 만들기 - as.data.frame() 함수 이용

 

다른 데이터 객체에서 데이터프레임으로 변환하려면 as.data.frame( ) 함수를 이용하면 됩니다.

gender <- c('F','F','F','M','M',"M")
as.data.frame(gender) 

mat01 <- matrix(7,2,3);mat01
as.data.frame(mat01) ; dataf02

 

# (3) 데이터프레임의 속성 살펴보기

dataf01
class(dataf01) # dataframe 
mode(dataf01) # list
str(dataf01) # 데이터프레임 구조를 출력
dim(dataf01) # 데이터프레임의 차원 (7 3)
names(dataf01) # gender hei wei
length(dataf01) # 3
head(dataf01)
tail(dataf01)
is.data.frame(dataf04) # TRUE
is.list(dataf04) #TRUE 프레임은 리스트이다...

 

 참고:

mode(dataf01) # list

    데이터프레임의 자료형을 살펴보면 리스트인 것을 볼 수 있습니다.     
    데이터프레임은 data.frame 이라는 클래스를 갖고 있는 리스트입니다.

 

# 데이터프레임 기술통계 구하기

 > summary(dataf1)

 

wei
Min. :65.00      :  최소값
1st Qu.:66.254  : 1/4 분위수
Median :67.50  : 중앙값
Mean :67.83    : 평균값 
3rd Qu.:68.75  : 3/4 분위수
Max. :72.00     : 최대값