R
파일 읽기
-read.table() : 일반 텍스트 파일 읽을 때 사용
> students = read.table(".txt", header = T)
> students

# 읽은 파일의 구조 확인
> str(students)

-read.csv() : CSV 파일 읽을 때 사용
> students = read.csv(".txt", header = T)
> students
파일 쓰기
-write.table() : 일반 텍스트 파일로 저장할 때 사용
> students = read.table(".txt", header = T, as.is = T)
# 문자열에 큰따옴표 표시됨
> write.table(students, file = ".txt")
# 문자열에 큰따옴표 표시되지 않음
> write.table(students, file = ".txt", quote = F)
데이터 정제를 위한 조건문
@[ ]에 행/열 조건 명시
-벡터의 경우
> test = c(15, 20, 30, NA, 45) # 벡터인 경우
> test[test<40] # 값이 40 미만인 요소 추출

> test[test%%3!=0] # 값이 3으로 나누어 떨어지지 않는 요소 추출

> test[is.na(test)] # NA인 요소 추출

@if문 사용(if, else if, else)
다른 언어들과 같이 사용해주면 됨
@ifelse문 사용
-if와 else문을 합쳐놓은 형태
-사용법 : ifelse(조건식, 조건식이 참인 경우 반환값, 조건식이 거짓인 경우 반환값)
> x = c(-5 : 5)
> options(digits = 3) # 숫자 표현 시 유효자릿수 3자리로 설정
> sqrt(x)

> sqrt(ifelse(x>=0, x, NA) # NaN 발생하지 않게 음수만 NA로 표시

반복문
-데이터 검토 시 반복적으로 값 변경하면서 사용해야 하는 경우 존재
-R에서 제공하는 반복문은 repeat, while, for문
@repeat문 이용
-1부터 10까지 1씩 수 증가시키기
i=1 repeat { if(i>10) { break } else { print i i=i+1 } }
@for문 이용
-1부터 10까지 1씩 수 증가시키기
for(i in 1:10) { print(i) }
@while문 이용
-1부터 10까지 1씩 수 증가시키기
i=1 while(i<10) { print(i) i=i+1 }
@조건문과 반복문 활용해 특정 범위 내에서 조건에 맞는 값 찾기
-1부터 10까지의 수 중 작수만 출력하기
for(i in 1:10) { if(i%%2==0) { print(i) } }

-1부터 10까지의 수 중 소수 출력하기
for(i in 1:10) { check=0 for(j in 1:i) { if(i%%j==0) { check=chek+1 } } if(check==2) { print(i) } }

사용자 정의 함수
-팩토리얼 구하는 함수
fact=function(x) { fa = 1 while(x>1) { fa=fa*x x=x-1 } return(fa) }
결측값 처리
-우리가 수집한 데이터에는 결측값(missing value) 존재할 수 있음
-결측값 : 데이터 중 고의 또는 실수로 누락된 값
-결측값을 그대로 놔둔 채 데이터 가공하면 결과값에 오류 뜨거나 잘못된 연산 수행될 수 있으므로 정제과정에서 적절한 처리 필요
@결측값 처리 방법
방법 | 설명 |
is.na() | NA인 데이터가 있으면 T, 없으면 F로 나타냄 |
na.omit() | NA인 데이터 제거. 즉 NA가 포함된 행 지움 |
함수의 속성 이용 | na.rm=T로 함수 수행 시, NA 제외함 |
이상값
-통계학에서 이상값이란 다른 관측값과 멀리 떨어진 관측값
-이상값을 모두 NA로 표현한다면 NA 관련 함수들을 사용할 수 있게 됨
'CS > R | DA' 카테고리의 다른 글
R 일반화 선형 모델, 회귀, 분류, 결정트리, 랜덤 포레스트 (0) | 2021.06.10 |
---|---|
R 모델링, 가설 검정, 예측, 다중 선형 회귀 (0) | 2021.06.09 |
R 데이터 시각화, gapminder, 로그스케일, ggplot2 (0) | 2021.04.11 |
R 데이터 가공, gapminder 라이브러리, 데이터 정렬 검색, 데이터 프레임 병합 (1) | 2021.04.10 |
R read csv, R 데이터형, 벡터, 배열, 데이터프레임, 리스트 (0) | 2021.04.08 |