data.frmae
- DBMS의 TABLE과 유사하다.
- 각기 다른 데이터 타입을 갖는 컬름으로 이루어진 2차원 테이블 구조이다.
데이터 프레임 생성 및 구조 확인
# 데이터 프레임 생성 df <- data.frame(name=c("scott","harden","curry"), sql=c(90,80,70), python=c(100,90,70)) |
|
# 데이터프레임은 문자는 기본값으로 펙터형으로 만들어진다. str(df) |
|
# 데이터프레임 생성할때 문자형을 펙터로 만들지 않기 df <- data.frame(name=c("scott","harden","curry"), sql=c(90,80,70), python=c(100,90,70), stringsAsFactors = FALSE) df str(df) |
데이터 프레임 인덱싱
# 데이터 프레임 인덱싱 df[1,] df[,1] df[c(1,3),2] df[,c('sql','python')] df[,'sql'] |
|
# 인덱싱 값 세로로 출력 df[,'sql',drop=FALSE] |
|
# 특정한 열만 확인 df$sql df$sql[1] |
데이터 프레임 값을 수정
df[1,1] <- 'james' |
데이터 프레임 컬럼 추가와 삭제
# 컬럼 추가 df$r <- c(90,80,70) |
|
# 컬럼 삭제 df$r <- NULL |
데이터 프레임 행 삭제
# 행 추가 df[4,] <- c('john',70,80) |
|
# 행 삭제 df <- df[-4,] |
데이터 프레임 컬럼 이름
# 컬럼 이름 확인 x <- data.frame(1:3) x colnames(x) names(x) |
|
# 컬럼이름 수정 colnames(x) <- 'id1' names(x) <- 'id' |
데이터 프레임 인덱스 이름
# 인덱스이름 확인 rownames(x) |
|
# 인덱스이름 수정 rownames(x) <- c('a','b','c') |
|
# 인덱스이름 제거 rownames(x) <- NULL |
없는 열을 뽑을때
# 오류 df <- data.frame(a=1:3, b=4:6, c=7:9) df df[,c('b','d')] |
|
# 오류 안나게 하기 df[,names(df)%in%c('b','d')] |
두 개 이상의 컬럼 제외
# 인덱스 번호로 제외 df[,-c('b','c')] df[,-c(2,3)] |
데이터 프레임 행렬의 수
# 행렬의 수 nrow(df) # 행의수 NROW(df) # 행의수 length(df) # 열의수 |
결과값 출력 개수 지정
# 출력 개수 지정 options(max.print = 10000000) df <- data.frame(x = 1:100000) |
데이터프레임 정보 몇 개만 보기
# 기본값 head(df) tail(df) |
|
# 개수 지정 head(df,n=5) tail(df,n=5) |
csv 파일 읽어들이기
# read.csv() : csv 파일을 데이터프레임으로 읽어들이는 함수 emp <- read.csv("C:/data/emp.csv",header=TRUE) emp str(emp) |
|
# 문자형을 펙터로 바뀌지 않게 만들기 emp <- read.csv("C:/data/emp.csv",header=TRUE, stringsAsFactors=FALSE) emp str(emp)
|
읽어들인 csv 파일에서 원하는값 출력
# select * from emp where employee_id = 100; emp[emp$EMPLOYEE_ID == 100,] |
|
# select LAST_NAME,SALARY from emp where employee_id = 100; emp[emp$EMPLOYEE_ID == 100,c("LAST_NAME","SALARY")] |
'컴퓨터 > R' 카테고리의 다른 글
R - 함수 ② 숫자 함수 (0) | 2020.04.10 |
---|---|
R - 함수 ① 문자 함수 (0) | 2020.04.10 |
R - 자료형 ⑤ factor(펙터) (0) | 2020.04.09 |
R - 자료형 ④ array(배열) (0) | 2020.04.09 |
R - 자료형 ③ matrix(행렬) (0) | 2020.04.09 |