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     : 최대값

 

 

 

 

 

 

 

+ Recent posts