컴퓨터/R

R - 자료형 ⑥ data.frame(데이터프레임)

해피밀세트 2020. 4. 9. 19:14

 

 

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 파일을 데이터프레임으로 읽어들이는 함수
# csv파일을 R에서 읽어 들이면 자동으로 데이터프레임 형식으로 읽어짐

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