6 min to read
R-Studio Subset과 IO의 사용.
R-Studio의 Subset을 통해 조건부 컬럼 출력.
R-Studio 의 IO
데이터 입출력을 위한 IO
조건에 맞는 컬럼 출력을 위한 subset()함수 사용
파일 소스
우클릭 -> 다른이름으로 링크저장 이용해 주세요
abc.csv
함수 예제
abccsv <- read.csv("abc.csv", header = T)
abccsv
# gender job age position address total check price survey
# 1 1 1 10 2 seoul 50 5 1200 3
# 2 1 2 20 5 busan 80 NA NA NA
# 3 1 2 30 4 daegu 60 5 2500 2
# 4 1 3 40 4 busan 70 3 1200 5
# 5 2 3 50 5 seoul 50 3 1400 6
# 6 2 2 60 7 daegu 40 3 3000 1
# check 속성 도메인 원자값 출력
unique(abccsv$check)
# 5와 NA와 3 3가지 값이 존재.
# [1] 5 NA 3
# check 열의 값이 5인 행들
check5 <- subset(abccsv, abccsv$check == 5)
check5
# gender job age position address total check price survey
# 1 1 1 10 2 seoul 50 5 1200 3
# 3 1 2 30 4 daegu 60 5 2500 2
# check 열의 값이 3인 행들
check_not_3 <- subset(abccsv, abccsv$check != 3)
check_not_3
# gender job age position address total check price survey
# 1 1 1 10 2 seoul 50 5 1200 3
# 3 1 2 30 4 daegu 60 5 2500 2
# check 속성값이 na값인 행 출력
check_na <- subset(abccsv, is.na(abccsv$check))
check_na
# gender job age position address total check price survey
# 2 1 2 20 5 busan 80 NA NA NA
# survey
check_na2 <- subset(abccsv, abccsv$survey==3 | abccsv$survey==1 | is.na(abccsv$survey))
check_na2
# gender job age position address total check price survey
# 1 1 1 10 2 seoul 50 5 1200 3
# 2 1 2 20 5 busan 80 NA NA NA
# 6 2 2 60 7 daegu 40 3 3000 1
# 오름차순
asc <- order(+abccsv$age)
asc
# [1] 1 2 3 4 5 6
abccsv[asc, ]
# gender job age position address total check price survey
# 1 1 1 10 2 seoul 50 5 1200 3
# 2 1 2 20 5 busan 80 NA NA NA
# 3 1 2 30 4 daegu 60 5 2500 2
# 4 1 3 40 4 busan 70 3 1200 5
# 5 2 3 50 5 seoul 50 3 1400 6
# 6 2 2 60 7 daegu 40 3 3000 1
# 내림차순
desc <- order(-abccsv$age)
desc
# [1] 6 5 4 3 2 1
abccsv[asc, ]
# gender job age position address total check price survey
# 1 1 1 10 2 seoul 50 5 1200 3
# 2 1 2 20 5 busan 80 NA NA NA
# 3 1 2 30 4 daegu 60 5 2500 2
# 4 1 3 40 4 busan 70 3 1200 5
# 5 2 3 50 5 seoul 50 3 1400 6
# 6 2 2 60 7 daegu 40 3 3000 1
# -가 들어가면 내림차순
abccsv[order(-abccsv$job, +abccsv$gender), ]
abccsv
# gender job age position address total check price survey
# 4 1 3 40 4 busan 70 3 1200 5
# 5 2 3 50 5 seoul 50 3 1400 6
# 2 1 2 20 5 busan 80 NA NA NA
# 3 1 2 30 4 daegu 60 5 2500 2
# 6 2 2 60 7 daegu 40 3 3000 1
# 1 1 1 10 2 seoul 50 5 1200 3
# check 속성값이 na 이면 3을 넣고 아니면 그대로 값을 유지
abccsv$check <- ifelse(is.na(abccsv$check), 3, abccsv$check)
abccsv
# price 속성값이 na 이면 na을 제외한 price속성의 평균을 na 속성값에 대입 한다.
abccsv$price <- ifelse(is.na(abccsv$price), mean(abccsv$price, na.rm = T), abccsv$price)
# gender job age position address total check price survey
# 1 1 1 10 2 seoul 50 5 1200 3
# 2 1 2 20 5 busan 80 3 NA NA
# 3 1 2 30 4 daegu 60 5 2500 2
# 4 1 3 40 4 busan 70 3 1200 5
# 5 2 3 50 5 seoul 50 3 1400 6
# 6 2 2 60 7 daegu 40 3 3000 1
str(abccsv)
# 'data.frame': 6 obs. of 9 variables:
# $ gender : int 1 1 1 1 2 2
# $ job : int 1 2 2 3 3 2
# $ age : int 10 20 30 40 50 60
# $ position: int 2 5 4 4 5 7
# $ address : Factor w/ 3 levels "busan","daegu",..: 3 1 2 1 3 2
# $ total : int 50 80 60 70 50 40
# $ check : num 5 3 5 3 3 3
# $ price : num 1200 1860 2500 1200 1400 3000
# $ survey : int 3 NA 2 5 6 1
# survey의 디폴트 : 3
# 파일을 생성한다.
write.csv(abccsv, "abcCleanData.csv")
Comments