R 기초 사용빈도 높은 기본 함수 Dataframe

  R에서 데이터 프레임을 받아 보면 반드시 확인 하는 작업이 있다. .  데이터 갯수,  데이터 속성 , 처음 6 행,  마지막 6 행,  필드명,  필드 갯수, 열의 이름 등  여러가지를 볼 수 있다.

아래의 표를 보면 이용빈도가 높은 함수를 볼 수 있다.

함수이름

기능

colnames

데이터 프레임이나 행열의 열 이름을 확인 한다.

rownames

데이터 프레임이나 행열의 행 이름을 확인 한다.

head

데이터 서두 6줄 표시

tail

데이터 마지막 6줄 표시

nrow

데이터 프레임이나 행열의 행수 표시

ncol

데이터 프레임이나 행열의 열수 표시


 아래는 서울시 아파트 예제로 한 데이터 셋 이다. 

library(rio)  
library(dplyr)
library(readxl)
library(httr)

# 파일을 불러오는 path를 url 변수로 정의      
url = "https://drive.google.com/u/0/uc?id=1PT_0-xJvM9KGp5zzx1jjcPAaS25epx4l&export=download"
GET(url, write_disk(tf <- tempfile(fileext = ".xlsx")))
apt <- read_excel(tf, 1L)  # 1L은 sheet 1을 이야기 하는 것이다.
# colnames 적용
  colnames(apt)
##  [1] "시군구"         "번지"           "본번"           "부번"          
##  [5] "단지명"         "전용면적(㎡)"   "계약년월"       "계약일"        
##  [9] "거래금액(만원)" "층"             "건축년도"       "도로명"        
## [13] "해제사유발생일"

 총 13개의 컬럼을 확인 할 수 있다. 

# head 적용
  head(apt)
##                     시군구    번지 본번 부번           단지명 전용면적(㎡)
## 1 서울특별시 강남구 개포동     185 0185 0000   개포주공 6단지        73.02
## 2 서울특별시 강남구 개포동     649 0649 0000            경남1        96.98
## 3 서울특별시 강남구 개포동     649 0649 0000          경남2차        182.2
## 4 서울특별시 강남구 개포동     649 0649 0000          경남2차        91.91
## 5 서울특별시 강남구 개포동 1164-30 1164 0030     뉴현대파크빌        83.46
## 6 서울특별시 강남구 개포동     138 0138 0000 디에이치아너힐즈      59.8732
##   계약년월 계약일 거래금액(만원) 층 건축년도         도로명 해제사유발생일
## 1   202103     31        226,000  7     1983     개포로 516           <NA>
## 2   202103     11        235,000  3     1984     언주로 110           <NA>
## 3   202103     15        300,000  1     1984     언주로 110           <NA>
## 4   202103     26        230,000 15     1984     언주로 110           <NA>
## 5   202103     31         71,400  2     2001 논현로2길 61-4           <NA>
## 6   202103     02        215,000 15     2019      삼성로 11           <NA>
# tail 적용
  tail(apt)  
##                          시군구 번지 본번 부번  단지명 전용면적(㎡) 계약년월
## 296651 서울특별시 중랑구 중화동  450 0450 0000 한신1차        59.76   201707
## 296652 서울특별시 중랑구 중화동  450 0450 0000 한신1차        50.37   201707
## 296653 서울특별시 중랑구 중화동  450 0450 0000 한신1차        59.76   201707
## 296654 서울특별시 중랑구 중화동  450 0450 0000 한신1차        50.37   201707
## 296655 서울특별시 중랑구 중화동  450 0450 0000 한신1차        84.03   201707
## 296656 서울특별시 중랑구 중화동  450 0450 0000   한신2        59.76   201707
##        계약일 거래금액(만원) 층 건축년도     도로명 해제사유발생일
## 296651     24         37,000 10     1997 동일로 752           <NA>
## 296652     24         32,000 21     1997 동일로 752           <NA>
## 296653     28         35,900 13     1997 동일로 752           <NA>
## 296654     29         31,200 26     1997 동일로 752           <NA>
## 296655     31         43,000 25     1997 동일로 752           <NA>
## 296656     31         34,500  7     1998 동일로 752           <NA>

head 하고 tail은 총 13개의 컬럼이 있어서,  2줄로 나누어져 있다. 

# nrow 적용 행의 갯수가 296,656 개 이다.  이것은 거래 건수 이다. 
  nrow(apt)
## [1] 296656
# ncol 적용
  ncol(apt)
## [1] 13

nrow는 행의 갯수 ncol은 열의 갯수를 세는 것인데,  for 루프 연산 할때,  가장 많이 활용 되는 함수 이다. 

# rownames 적용  데이터 갯수를 6개로 자른다.
  rownames(head(apt))
## [1] "1" "2" "3" "4" "5" "6"

 rownames는 열의 이름을 정하는 것인데,  데이터 프레임에서 별도로 정하지 않으면 시리얼 번호가 나온다.  


위의 코드는 데이터 프레임을 맨 처음 받아 보았을때,  많이 사용하는 기능 이므로 잘 익혀 두는 것이 좋다. 



댓글 없음:

댓글 쓰기

[주식 클로드 자동매매 프로젝트] 제2편. 데이터 인프라 구축 — 모델보다 데이터가 먼저다

 머신러닝 모델을 이야기하기 전에, 그 모델이 먹는 데이터가 어디서 어떻게 왔는지부터 정직하게 밝혀야 한다. 이 프로젝트에서 가장 많은 시간이 들어간 부분은 화려한 모델 튜닝이 아니라, "내가 정말 그 데이터를 갖고 있는가"를 확인하...