요리의 시작은 재료를 다루는 기초 요리법 = 데이처를 처리하는 연산자와 함수 사용법
함수 분류 = 데이터 기초 요리법
확인 함수 = 확인하기
조작 함수 = 조작하기
수학 함수 = 계산하기
그래프 함수 = 그리기
할당 연산자에 <- 대신 = 사용 가능
x%%y 나눈 나머지
x%/% 나눈 몫
데이터 가져오기와 내보내기
데이터 분석을 하려면 데이터가 있어야 한다. 데이터는 회사 내 데이터베이스 시스템에서 직접 가져올 수도 있고, 공공 기관 등에서 공개 제공하는 문서 파일을 내려받을 수도 있습니다.
1. read.csv()와 read.excel() : 데이터 가져오기
csv 파일: comma-separated values 파일, 데이터를 쉼표로 구분함
Error: '\U' used without hex digits in character string (<input>:1:19)
R 파일 읽기나 경로 변경 시 Error: 'C:\U' used without hex digits in character string starting 'C:\U' 해결
How to fix Error used without hex digits in character string starting
freshrimpsushi.github.io
> 바탕화면에 폴더 두었을 때 오류 해결 방법
Error in type.convert.default(data[[i]], as.is = as.is[i], dec = dec, :
invalid multibyte string at '<b8><b6><c6><f7>'
[RStudio] RStudio mac에서 인코딩 에러(read.csv)
예전에 산 책. 오랜만에 마음 먹고 다시 공부하려고 하는데 예제 파일 불러오기가 에러가 남.windows에서는 잘 되지만 mac에서는 인코딩 에러. > DF DF DF name sex age grade absence bloodtype height weight1 김길
www.v1rus.com
> 인코딩 에러 해결 방법 CP949
Rstudio 메뉴로 csv 파일 가져오기 Environment>import Dataset
2. write.csv()와 write_excel()함수 : 데이터 내보내기
3. sink()함수: 분석 결괏값 저장하기
sink() 함수는 편집 창이나 콘솔 창에서 실행한 R코드의 결과를 콘솔 창에 출력하는 대신 외부 파일로 출력한다.
4. save() 와 load() 함수
데이터 확인
데이터를 분석하려면 어떤 데이터로 데이터셋이 구성되어 있는지 확인하는 작업이 필요하다.
열 수십 개와 행 수천만 개를 가진 데이터셋이라면 한눈에 알기가 어렵다.
R은 데이터셋을 쉽게 확인할 수 있는 다양한 함수를 제공한다.
1. head()와 tail() 함수 : 데이터 앞부분과 끝부분 확인하기
head() 함수는 데이터셋의 맨 앞부분을 출력한다. 기본적으로 6행까지 출력하지만, 10행까지 보고싶다면
head(iris,10) 처럼 활용한다. 반대로 tail() 은 데이터의 맨 끝부분을 출력한다.
summary(): 함수는 데이터의 요약 통계량을 출력한다. 데이터를 사전 분석할 때 데이터 특성을 알고자 자주 사용한다.
Min: 최솟값
1st Qu : 하위 25%의 위치값
median: 중앙값
mean : 평균
3rd Qu : 하위 75%의 위치 값
Max : 최댓값
2. str() 함수 : 데이터셋 구조 확인하기
150 obs. of 5 variables: 다섯개의 열과, 150개의 행
3. view() 함수 : 데이터셋 창을 띄워 확인하기
4. dim(), nrow(), ncol() 함수: 데이터 차원, 행, 열 확인하기
5. length() 함수 : 데이터 길이 세기
데이터 프레임에서 사용하면 열 길이를 출력한다. 벡터나 리스트에서도 사용 가능하다.
6. ls() 함수 : 변수 목록 확인하기
7. object.size() 함수 : 변수 크기 사용하기
데이터 조작
조작 함수는 데이터를 나누고 합치고 선택하고 변형한다.
1. rbind()와 cbind() 함수: 행끼리, 열끼리 묶기
bind 라는 단어가 묶는다는 의미이다. rbind() 함수는 행(column)을 합치고, cbind() 함수는 열(row)을 합친다.
2. split() 함수 : 팩터 열로 나누기
iris 데이터셋을 팩터 열을 Species 열로 하여 나누어 보겠다.
3. subset() 함수 : 조건으로 데이터 선택하기
원리: 조건식을 행에 적용한 후, 열 선택하여 선택된 데이터를 출력한다.
4. substr() 함수 : 지정한 자리만큼 문자열 선택하기
5.merge() 함수: 데이터 프레임 합치기
cbind() 함수의 경우 공통 기준 열 없이 데이터 값 순서대로 합쳐준다.
merge() 함수는 공통 기준 열을 고려하여 데이터 값을 합쳐준다.
6. sort()와 order() 함수
10. apply() 계열 함수
데이터셋에 특정 요약 통계를 적용하여 결과를 반환하는 기능을 한다.
tapply() 함수는 그룹별로 요약 통계를 적용한다. 꽃잎 넓이 (Petal.Width)로 그룹화하여 꽃잎 길이(Petal.Length)의 평균을 구하겠다.
1) unique() 함수를 사용해서 Petal.Width의 유일 값을 x변수에 담고 sort() 함수로 정렬해서 확인했다. 유일한 데이터 값이 0.1~2.5 이다.
2) 이후 tapply() 함수를 사용해서
데이터셋에 대해 Petal.Width 를 기준 열로 그룹화한 후
대상 열 Petal.Length에 대해
지정한 요약 통계 (mean)을 출력하였다.
mapply() 함수는 각 대상 인수에 대해 지정한 요약 통계를 적용한다.
iris 데이터의 각 1~4열에 대해 최댓값을 구하는 요약 통계인 max를 적용하는 예를 살펴보겠다.
apply 계열 함수에 대해선 dplyr 패키지로 좀 더 쉽게 할 수 있다.
11. as. ~ 계열 함수 : 형 반환 함수
자료형과 데이터 구조에 대해 형 변환이 필요할 때는 as.~ 계열 함수들을 사용한다.
형 변환은 문자형 날짜를 숫자로 변환해서 계산하거나, 특정 문자나 숫자를 범주형인 팩터 구조로 변환하여 연산하는 등의 데이터 분석을 할 때 자주 사용한다.
데이터 계산
R이 통계 분석을 위해 탄생한 프로그램인 만큼 R에서 사용할 수 있는 수학 함수의 종류는 매우 다양하다.
데이터 그리기
1. plot() 함수 : 산점도 그리기
산점도 scatter plot 은 데이터를 x축과 y축에 점으로 표시하는 그래프이다.
실제 값들을 표현해서 데이터 분포나 관계를 확인하는 데 유용하다. 산점도를 그릴 때는 plot() 함수를 사용하는데, 축을 별도로 지정하지 않으면 데이터 순서 (인덱스)대로 그래프가 그려집니다.
그래프에 'iris data' 라는 제목을 붙이고 x축과 y축에도 이름을 붙여 보겠다. 그리고 품종 (Species)별로 색상을 입혀 보겠다.
데이터를 산점도로 그려 보면 각 품종의 꽃잎 길이와 넓이 간 일정한 관계, 즉 상관 관계가 있음을 알 수 있다. 또 품종 별로 꽃잎 길이와 넓이는 무리를 이루고 있다는 것을 알 수 있다.
2. pairs() 함수: 행렬 산점도 그리기
산점 행렬도는 산점도 그래프를 변수 여러개로 조합하여 나타내는 행렬 형태의 그래프이다.
3. hist() 함수 : 히스토그램 그리기
값의 범위마다 빈도를 표현한 것이 히스토그램이다. 히스토그램은 데이터가 모여 있는 정도(분포)를 확인하기에 좋다.
확률 밀도로 확인하고 싶다면 freq=FALSE 옵션을 추가한다. 각 구간을 합친 확률 밀도의 합은 1이다.
4. barplot() : 막대 그래프 그리기
막대 그래프는 집단 간 차이를 확인하고자 할 때 유용하다.
5. pie() 함수 : 파이 차트 그리기
파이 차트는 데이터의 비율을 표현하는 데 유용하다.
6.plot() 함수 o옵션 : 선 그래프 그리기
선 그래프는 시간에 따른 데이터 추이를 확인하는데 유용하다.
꽃잎 넓이를 기준으로 그룹화한 후 꽃잎 길이의 평균값을 구하고 x변수에 담아 선 그래프를 그려보겠다.
7.boxplot()함수 : 상자 그림 그리기
상자 그림, box plot은 최댓값, 최솟값, 중앙값, 사분위수, 이상치 등을 알아보기 쉽게 나타내는 그래프입니다. 상자 그림은 데이터 분포를 확인하는 데 요긴하게 사용할 수 있습니다. 박스 아랫면 라인은 데이터 값의 1사분위수(=Q1,25%), 박스 중앙 라인은 2사분위수, 박스 윗면 라인은 3사분위수 를 가리킨다. 위아래로 뻗은 선을 수염(whisker)이라고 하며, 수염 밖을 벗어난 점을 이상치(outlier)라고 한다. Q1 보다 작거나 Q3보다 크면 그 값을 이상치라고 하는데, 통계적으로 정상 범주에서 벗어난 값이라고 한다.
위 꽃받침 넓이에서 1사분위수는 약 2.8, 중앙값은 약 3.0, 3사분위수는 약 3.3 이다. 하위 수염은 약 2.2에 이보다 작은 이상치는 한 개, 상위 수염은 약 4.0이며 이보다 큰 이상치는 세 개로 확인된다. 이것으로 꽃받침 넓이의 전체적인 데이터 분포를 알 수 있다.
그 외 반복문과 사용자 정의 함수
'R' 카테고리의 다른 글
R 중간고사 (0) | 2023.10.17 |
---|---|
R 데커레이션, ggplot2 (2) | 2023.09.05 |
R 작업환경, 실습예제 (0) | 2023.09.05 |
R 변수와 함수 그리고 패키지 (1) | 2023.09.03 |
모두의 R 데이터 분석 공부 (0) | 2023.09.02 |