홍동이의 성장일기
[👩💻TIL 11일차 ] 유데미 스타터스 취업 부트캠프 4기 본문
목차
[163차시]working directory 설정 및 프로젝트 만들기
[160차시]데이터 처리과정에서 R의 역할
데이터 처리과정에서 R의 역할
[161차시]R 및 Rstudio 설치하기
R 설치
📍 R Project 홈페이지 접속 > CRAN > Ctrl + F: korea > 아무거나 들어가서 자신의 환경에 맞는 링크 클릭 > R 처음 설치 시: install R for the first time > 큰 글씨 클릭
R: The R Project for Statistical Computing
www.r-project.org
📍 C드라이브에 'R' 파일 만들기 > 해당 위치에 설치
R 스튜디오 설치
📍 product > RStudio download > RStudio Desktop > Install RStudio
※ 강의와 경로가 달라서 새로 작성
Posit
The best data science is open source. Posit is committed to creating incredible open-source tools for individuals, teams, and enterprises.
posit.co
📍 C드라이브에 'RStudio' 파일 만들기 > 해당 위치에 설치
해당 폴더들에 프로그램이 깔려있다면 성공적으로 설치한 것이다.
[162차시]R 및 RStudio 기본 사용방법 이해
RStudio 구성요소
Script 창
- R코드를 작성하는 창
- 작성한 코드를 파일로 저장 및 불러오기 가능
- ".R" 확장자 사용
- 함수에 대한 자동완성 기능 제공
- Run 버튼 눌러 코드 실행
Console 창
- 간단한 코드 작성 및 실행
- 코드 실행 결과 확인
- 오류 확인
Terminal 창
- CMD 창과 동일
- 커맨드라인 통한 OS 조작
Environment 창
- 로딩된 데이터셋 표시
- 선언된 변수/함수 표시
History 창
- 실행한 명령어(코드) 로깅
Connections 창
- DB 서버와 연결 관리
Files 창
- 파일 탐색기와 동일
Plots 창
- 그래프 그린 결과물 출력
Packages 창
- 패키지 관리
Helper 창
- 도움말
Viewer 창
- 웹 관련 HTML코드 실행 결과물 출력 창
R 맛보기
Console 창 사용해보기
- 기본적인 계산 기능
: 사칙연산, 제곱 - 문자열 출력 기능
: Print("x") - 데이터셋 로드
- 내장된 데이터셋 로딩 ex) airquality
- head: 상위 6개, tail: 하위 6개 데이터 출력
- 정답
> head(airquality)
Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
> print((67+72+74+62+56+66)/6)
[1] 66.16667
Script 저장하기
- File > save (단축키: Ctrl + S)
- File 저장 다이얼로그 생성되며 파일이름 수정하여 저장 가
Script 불러오기
- File > open File (단축키: Ctrl + O)
- ".R" 확장자를 가지는 파일 선택하여 불러오기 가능
[163차시]working directory 설정 및 프로젝트 만들기
Working directory
내장함수 source
- source 함수: 만들어진 스크립트(.R) 파일의 내용을 import
→ 스크립트 모든 행을 run하는 것과 동일- 절대 경로 사용
- 상대 경로 사용: 서로 다른 폴더에 같은 이름을 가진 파일이 있다면 Working director을 기준으로 함
Working directory란?
- 작업을 위한 폴더
- 데이터셋, 파일 등 불러오기/저장 작업 수행하는 기본 폴더
- 프로그래밍에 필요한 파일 관리 용이
: 새 폴더를 만들어 Working directory로 지정 후, R 관련 모든 파일을 한 폴더에 관
Working directory 확인
- 현재 Working directory 경로 확인 방법: getwd()
- Working directory 내부 파일 확인 방법: dir()
Working directory 수정
- 임의의 새 폴더 생성 (기존 폴더도 가능)
- setwd 커맨드 사용하여 Working directory 지정
※ RStudio 재시작시 유지 안됨
Rstudio를 재시작해도 유지하고 싶다면 Tools > Global Options > Default Working directory 수정
- 실습
프로젝트 생성
- 우측 상단 Project > New Project
- New Direcoty > 프로젝트명 적고 Create Project
다른 컴퓨터에서 프로젝트 열기
- 우측 상단 Project > Open Project
- 원하는 프로젝트 파일 열기
→ 작업환경이 바뀌어도 빠르게 환경구축이 가능하다.
[164차시]유용한 환경 설정 알아보기
환경 설정 범위
Global 환경 설정
- Global Options
- Rstudio 환경 내에서 실행되는 모든 프로젝트에 적용
Project 환경 설정
- Project Options
- 프로젝트 별로 다르게 환경 설정 가능
- 현재 프로젝트에만 설정 사항 반영
- 프로젝트가 없는 경우 환경 설정 불가능
Soft Wrap 기능
: 자동 줄바꿈 기능
- Source 창에서 코드가 길어질 경우 자동 줄 바꿈
- Tools > Global Options > Code > "Soft-wrap R source" 체크박스 클릭
Line 하이라이트 기능
: Source 창에서 선택된 행 하이라이트 기능
- Tools > Global Options > Code > Display > "Highlight selected line" 체크박스 클릭
폰트 및 배경 설정
: 폰트 및 source 창 배경 커스터마이징 가능
- 폰트 타입 및 크기 변경 가능
- 다양한 배경 탬플릿 제공
- Tools > Global Options > Appearance > 폰트, 배경 값 조절
난 이렇게 바꿨다!😀 주피터 노트 테마 변경보다 훨씬 간편하고 즉각적으로 바뀌는 모습을 확인할 수 있어서 좋다.
다크모드 짱짱맨 🦇
인코딩 방식 설정
: 텍스트 인코딩 방식 변경 기능
- 한국어 깨지는 경우 확인해야할 설정
- Tools > Project Options > Code Editing > Text encoding > UTF-8로 변경
유용한 단축키
- Ctrl + Shift + N: 새 소스파일 (스크립트 창)
- Ctrl + Shift + C: 코드 주석화
→ 범위 지정하여 여러 줄 한번에 주석화 가능 - Ctrl + Shift + Enter: 소스코드 실행
→ 현재 작성중인 Source 파일에 source 함수 적용 - Ctrl + 1~9: 화면이동 단축키
- 숫자 별 지정된 창으로 커서 이동
- 1: Source 창, 2: Console 창, 5: Files 창, 6: Plots 창, 8: Environment 창 등
- Shift + Alt + K: 모든 단축키 확인
[165차시]데이터 타입 알아보기
데이터 타입
Object(객체)
- R이 다루는 가장 기초적인 구조
- Atomic of R
- 한국어의 "형태소"와 유사
- 데이터 값은 객체에 담김
Class
- 객체의 타입
- Class 확인: class() 함수 사용
R은 데이터를 처리할 때 class에 따라 다르게 분류하여 처리
Numeric (수치형 타입)
- 숫자를 나타내는 데이터 타입
- [Quiz] 0의 데이터 타입은?
Integer (정수형 타입)
- 정수값만을 나타내는 데이터 타입
- 메모리 관리에 효율적
- R에서 숫자는 기본적으로 Numeric 타입으로 선언됨
객체 타입을 Integer로 지정하려면 값 뒤에 'L' 기입 - [Quiz] Console 창에 'class(1.1L)'를 입력하였을 때 결과는?
→ 1.1은 정수가 아니기 때문에 'L'을 붙이지 말라는 warning message가 발생한다.
Logical (논리형 타입)
- 참, 거짓을 나타내는 데이터 타입
- TRUE, FLASE (T, F)
- [Quiz] Console 창에 'class(True)' 입력하였을 때 결과는?
→ 에러가 발생한다. 반드시 모든 글자가 대문자여야함!
Character (문자형 타입)
- 문자 또는 문자열을 나타내는 데이터 타입
- 따옴표(') 또는 쌍따옴표(")로 감싸는 형태로 표현
- [Quiz] Console 창에 'class("1")' 입력하였을 때 결과는?
Complex (복소수형 타입)
- 복소수 값을 나타내는 데이터 타입
- 실수값 + 허수값(i) 형태로 표현
- 실세계 데이터에서는 찾아보기 힘듦
특별한 데이터 객체
Inf (Infinity)
- 무한히 큰 값을 나타내는 데이터 객체
- 일반적인 계산에 사용가능
- [Quiz] '1/Inf'의 결과값은?
NA (Not Available)
- 결측값을 나타내는 데이터 객체
→ 현실 데이터중에는 결측값이 존재하는 경우가 흔함 - NA 처리를 위한 다양한 함수 존재
NaN (Not a Number)
- 수치값으로 표현할 수 없는 값을 나타내는 데이터 객체
ex) 0/0 - 결측값으로 처리
[166차시]데이터 종류
실세계의 데이터셋 - 자료구조 왜 알아야하나?
- 데이터셋(Dataset): 데이터들의 집합, 모음
- 매우 다양한 종류의 데이터셋들이 존재
: 서울 하루간 시간별 날씨, 학교 과목별 시험 성적 - 데이터 양이 아주 많음
- 빠른 정보 추출을 위해 효율적인 데이터 탐색, 관리 중요
- 특정한 규칙으로 컴퓨터 상에 표현 = 자료구조
데이터 종류
데이터 차원에 따른 구분
- 1차원: 단일 주제 데이터들을 모아 놓은 구조
- 2차원: 복수 주제 데이터들을 모아 놓은 구조
- 가장 활발히 사용되는 데이터 종류
- 시각화에 가장 적합
- 사람의 눈은 2차원을 인식하기 때문
- 가장 활발히 사용되는 데이터 종류
- N차원: N-1차원 데이터들을 모아 놓은 구조
데이터 구성에 따른 구분
- 단일형: 한가지 타입의 데이터로만 구성된 데이터
- 다중형: 여러가지 타입의 데이터로 구성된 데이
데이터 값 연속성에 따른 구분
- 범주형
- 데이터 값이 이산적
- 보통 논리값 또는 문자로 표현
- 산술 연산 불가능
- 수치형
- 데이터 값이 연속적
- 수치로 표현
- 산술 연산 가능
- 수치형 값은 범주형으로 표현 가능
[167차시]R 자료 구조
개요
차원 및 데이터 구성에 따라 구조 구분
벡터(Vector)
- 가장 기본적인 자료 구조
- 1차원 구조
- 데이터 타입이 동일한 값들의 모음 (단일형)
- 생성 방법
- c() 함수 사용
- vector() 함수 사용
- 사용방법: vector("데이터 타입", length = 벡터 크기)
- 실제로 값을 넣지 않았기 때문에 기본값으로 초기화
- [Quiz] 벡터의 데이터 타입은 무엇일까?
- class(c(1,2,3))
- class(c("a", "b", "c"))
- class(c(T, T, F))
→ 단순 값 또한 모두 vector 자료구조로 표현됨
- Vector은 가장 기본적인 데이터 자료구조
ex) 10 == c(10): 숫자 10을 포함하는 크기가 1인 numeric vector
- [Quiz] 벡터에 서로 다른 데이터 타입을 넣는다면 어떻게 될까?
- c(1.7, "a")
- c(TRUE, 2)
- c("a", TRUE)
→ 자동 형변환 일어남: 단일형 값으로 표현
형변환
: 데이터 타입이 다른 타입으로 변경되는 것
- 자동 형변환: 컴퓨터에 의해 자동으로 형변환이 일어남
- 자동 형변환 우선 순위: Character > Numeric > Logical
행렬(Matrix)
- Vector의 집합
- 단일형, 2차원 구조
- 행(row), 열(col)로 구성
- 생성방법
- matrix() 함수 사용
- 사용방법: matrix(nrow = 행 크기, ncol = 열 크기) - Vector값 사용하여 matrix 생성 가능
- 사용방법: matrix(vector, nrow = 행 크기, ncol = 열 크기) - byrow 옵션
- 데이터를 "행"부터 채움
- 기본값: FALSE
- matrix() 함수 사용
- [Quiz] 행렬의 데이터 타입은 무엇일까?
- class(matrix(nrow=2, ncol=3)
→ 행/열 크기를 담는 dim 속성을 추가로 가짐
※ Matrix에서 dim은 크기가 2인 vector
배열(Array)
- dim 속성 크기가 2이상인 자료구조
- 생성방법
- array() 함수 사용
- array(dim=(2,2,3))
- Vector 값 사용하여 array 생성 가능 - Matrix == dim 크기가 2인 array
- array() 함수 사용
리스트(List)
- 서로 다른 데이터 타입이 존재하는 값들의 모음
- 현실 세계에서 아주 흔하게 존재하는 데이터 구조
- 생성방법
- list() 함수 사용
- [Quiz] List에 다른 자료구조를 넣을 수 있을까?
- list(c(1,2,3), 2, T)
- list(list(1,T,"a"), 1)
- list(matrix(nrow=2, ncol=3), "a", 5)
→ Vector, matrix, list 등의 자료구조 포함 가능
※ list안에는 모든 자료구조가 포함될 수 있다.
데이터 프레임
: List의 집합
- 다중형, 2차원 구조
- 행(row), 열(col)로 구성
- 각 행은 list 취급
- 각 열은 vector 취급
- 열 별로 다른 데이터 타입 저장 가능
- 데이터셋 파일 로딩 시, 주로 데이터 프레임 구조 사용
: Table, excel, csv 형식 데이터 - 생성 방법
- data.frame() 함수 사용
- 사용방법: data.frame(vector, vector, ...)
- 각 vector는 column 값으로 삽입됨
- data.frame() 함수 사용
[168차시]데이터자료 구조 실습
Quiz
- R 언어가 다루는 가장 기초적인 구조는 Object다.
- 데이터 타입을 확인하기 위해서는 class() 함수를 사용한다.
- 기본적인 데이터 타입으로는 수치형, 정수형, 논리형, 문자형, 복소수형 등이 있다.
- 결측치를 나타내는 데이터 타입은 NA다.
- 수치적으로 표현할 수 없는 값을 나타내는 데이터 타입은 NaN이다.
- 데이터들의 집합 또는 모음은 데이터셋이라 부른다.
- 단일형 데이터는 한가지 데이터 타입으로만 구성된다.
- 범주형 데이터는 수치형 데이터로 변환 가능하다. (X)
→ 수치형 데이터를 범주형 데이터로 변환하는 것은 가능하다. - 가장 기본적인 데이터 자료구조는 Vector이다.
- 다중형 데이터 자료구조이며, 현실 세계에 흔하게 존재하는 데이터 구조는 List이다.
- 단일형, 2차원 데이터 자료구조는 Matrix, Array이다.
실습 - 은행 대출상품 마케팅
- 각 컬럼별 데이터 타입
Age | Numeric (Integer) | Job | Character |
Marital | Character | Balance | Numeric |
Campaign | Character | Y | Logical |
- 각 컬럼별 데이터가 범주형인지 수치형인지 설명하시오.
Age | 수치형/범주형 | Job | 범주형 |
Marital | 범주형 | Balance | 수치형 |
Campaign | 범주형 | Y | 범주형 |
#12차시 실습 Q3
age <- c(30,33,35,30,68,33) #나이 벡터 생성
job <- c("무직", "서비스", "관리직", "관리직", "은퇴", "관리직") #직업 벡터 생성
marital <- c("결혼", "결혼", "미혼", "결혼", "사별", "결혼") # 결혼 유무 벡터 생성
balance <- c(1787,4789,1350,1476,4189,3935)
campaign <- c("휴대폰", "휴대폰", "휴대폰", "Unknown", "유선전화", "휴대폰") # 상담 매체 벡터 생성
y <- c(F,F,F,F,T,T) # 상담 결과 벡터 생성
result <- data.frame(age, job, marital, balance, campaign, y) # 데이터 프레임 생성
print(result) # 출력
[169차시]변수 이해하기
변수의 개념
- 변할 수 있는 값
- 프로그래밍에서의 변수
- 데이터를 저장하기 위해 이름을 할당받은 메모리 공간
- 프로그램 내에서 어떤 값을 저장해 놓을 수 있는 보관함
- R에서의 변수란?
- 객체(Object)를 저장해 놓는 보관함
- 객체(Object)를 저장해 놓는 보관함
사용 방법
- 변수 사용 방법: a <- 10
- 'a'라는 변수를 선언
- '<-' 연산자 사용하여 '10'이라는 수치형 값 할당
- 선언과 할당
- 선언: 변수명을 등록하여 프로그램에 변수의 존재를 알리는 과정
- 할당: 변수에 값을 저장하는 과정
변수 초기화
- 초기화란?
- 최초로 값을 저장하는 행위
- a <- 10: 'a'라는 변수 선언과 동시에 10으로 변수를 초기화
- 변수 선언만 하기
- NULL값 사용: a <- NULL
- 할당할 값이 미정인 상태에서 변수 선언만 하고싶은 경우 사용
변수 할당
- 변수는 연산의 결과를 할당 가능
a <- 10+20
print(a)
b <- a-5 # 변수도 산술 연산에 사용 가능 (데이터 타입이 맞을 시시)
print(b)
c <- c(1,2,3)+5 # 벡터에 대한 산술 연산 가능
print(c)
d <- (10>5)
print(d)
e <- b+d # 산술 연산에서 TRUE는 1
print(e)
- 변수는 하나의 객체만 저장 가능
a <- 5,10 # 에러 발생
a <- c(5,10) # vector는 하나의 객체이기 때문에 저장 가능
print(a)
- 특별한 데이터 타입 할당가능
a <- Inf
print(a)
b <- 2/0
print(b)
b2 <- -2/0
print(b2)
c <- NA
print(c)
d <- NaN
print(d)
e <- 0/0
print(e)
- 한번에 여러 변수 선언 또는 할당 불가능
#에러 발생
a,b <- 5,10
#정상 동작
a<-5
print(a)
b<-10
print(b)
선언한 변수 확인하기
- Print 함수 또는 Console 창에서 변수명 입력하여 확인
- Rstudio의 Environment 창
- 선언한 변수 및 할당된 값 간편하게 확인가능
변수 작명 규칙
- 첫글자에는 문자 또는 마침표(.)만 사용가능
- 숫자, 밑줄('_')로 변수명 시작 불가능
- 두번째 글자부터는 숫자, 밑줄 사용가능
- 특수문자는 사용할 수 없음
#가능
a <- 10
.a <- NULL
a1 <- 10
#에러발생
_a <- 10
1a <- 10
- 알파벳 대문자와 소문자는 별개의 문자 취급
a <- 10
print(a)
A <- 20
print(A)
- 변수명 중간에 빈 칸 넣을 수 없음
a bd <- 10 #에러 발생
a_bd <- 20 #정상 동작, 빈칸과 같은 효과를 내고 싶다면 밑줄 사용 권장
- 한국어 변수 사용가능
: 인코딩 이슈 등 발생할 수 있기 때문에 권장하지 않음
변수 <- 10
print(변수)
[170차시]함수 이해하기
함수의 개념
- 기본적인 함수명 y = f(x)
- 구성
- x: 입력 변수
- f: 함수
- f(x): 함수에 입력값을 적용
- y: 결과 변수
- 구성
- 함수란?
- 입력값을 넣고 실행 → 결과값 리턴하는 장치
R의 함수
- 함수는 실행 내용에 대한 정의가 필요
- 어떠한 입력값이 오던지 정의된 내용대로 실행하여 결과값 리턴
- R에서의 함수
- 모든 객체 입출력 값으로 사용 가능
: 수학의 함수와 다른 부분
- 모든 객체 입출력 값으로 사용 가능
a <- TRUE
b <- class(a) #a에 대한 데이터 타입을 문자열로 리턴
c <- print(a) #입력받은 a를 콘솔창에 출력. 문자열이 아닌 변수값을 그대로 리턴함
class(b)
class(c)
y <- sqrt(25)
print(y)
y2 <- mean(c(1,2,3,4,5))
print(y2)
매개변수(Parameter, Argument)
- 함수의 입력 변수를 부르는 명칭
- 프로그래밍 용어
매개변수의 입력
- 함수의 정의에 알맞은 매개변수 입력 필요
- 정의에 맞지 않는 매개변수 입력시, 오작동 또는 에러 발생
mean(c(1,2,3,4,5))
mean(c("1","2","3"))
매개변수 형식
- Mean함수는 3개의 매개변수 존재: x, trim, na.rm
- "매개변수명 = 매개변수값" 형태로 입력
mean(x=c(1,2,3,4,5), trim=0, na.rm=FALSE)
- 매개변수명 생략: 매개변수의 값을 정의 순서대로 입력하는 경우, 매개변수명 생략 가능
- 매개변수값 생략
- 매개변수는 필수 매개변수와 선택적 매개변수로 구분
: 기본값은 함수 선언시 정의됨
- 기본값 지정X: 필수 매개변수
- 기본값 지정O: 선택적 매개변수 - 선택적 매개변수는 생략 가능
: 생략되는 경우 기본값 사용
- 매개변수는 필수 매개변수와 선택적 매개변수로 구분
mean(x=c(1,2,3,4,5), trim=0, na.rm=FALSE) #정식문법
mean(x=c(1,2,3,4,5), trim=0) #선택적 매개변수 na.rm생략
mean(x=c(1,2,3,4,5)) #선택적 매개변수 모두 생략
mean(c(1,2,3,4,5),0,FALSE) #매개변수명 생략
mean(c(1,2,3,4,5)) #매개변수명 및 선택적 매개변수 생략
내장 함수란?
- 내장 함수: 프로그램에서 기본적으로 정의되어 제공하는 함수
ex) print, class, sqrt, mean - 사용자 정의 함수: 사용자가 직접 정의하여 만들어내는 함수
AS 함수
- 데이터 형식을 강제로 변환시킴
- 데이터 우선순위 낮은 타입 → 높은 타입으로 변화는 모두 가능
- 데이터 우선순위 높은 타입 → 낮은 타입으로 변화는 일부 가능
- 데이터 우선순위: Character > Numeric > Logical
#낮은 우선순위 -> 높은 우선순위
vec <- c( T, F, FALSE) #logical 타입 vector 생성
vec2 <-as.numeric(vec) # c(1, 0, 0). numeric 타입 강제 형변환. T=1, F=0으로 취급
vec3 <-as.logical(vec2) # c(T, F, F). 다시 logical 타입 변환 가능. 0 초과의 수 =T, 0 이하의 수=F 취급
vec4 <-as.character(vec3) # c(“TRUE”, “FALSE”, “FALSE”)
#높은 우선순위 -> 낮은 우선순위
test <- c(“char”, “10”, “TRUE”)
testToNum <- as.numeric(test) # c(NA, 10, NA). 숫자로 이루어진 문자만 형변환 가능
testToLogic <- as.logical(test) # c(NA, NA, TRUE). 논리형 값과 동일한 문자만 형변환 가능
※ 숫자와 논리형 데이터 타입간에는 모두 형변환이 가능하지만 논리 → 숫자 시 True = 1, False = 0으로 형변환이 일어나고, 숫자 → 논리로 형변환이 일어나는 경우에는 양수값이 TRUE, 0을 포함한 음수값은 FALSE로 변환된다.
seq 함수
: From부터 by씩 증가하는 length개의 숫자로 이루어진 벡터 생성
rnorm 함수
: 평균이 mean, 분산이 sd인 정규분포를 따르는 n개의 숫자로 이루어진 벡터 생성
runif 함수
: [min, max] 범위 사이 n개의 난수로 이루어진 벡터 생성
seq(length=5, from=3, by=2) # c(3, 5, 7, 9, 11)
rnorm(n=4, mean =0, sd=1) # 평균 0, 분산 1인 정규분포 따르는 4개 데이터 생성
runif(n=4, min=1, max=100) # 최소값 1, 최대값 100 사이의 무작위 값 4개 생성
[171차시]패키지 이해하기
패키지(Package) 개념
- 함수들의 모음
: 유사한 기능을 하는 함수들을 한데 묶어 관리하는 꾸러미 - R 주요 패키지 소개
패키지 탐색 방법
CRAN 사용
- R언어에서 사용 가능한 모든 패키지 알파벳순으로 정리
- 패키지에 대한 자세한 명세 및 패키지 다운로드 가능
CRAN Packages By Name
cran.r-project.org
Ctrl + F > mapsf 검색 > 위에위에 maps
※ Documentation을 통해 사용법 확인 가능
- 기능에 따른 패키지 분류 존재
CRAN Task Views
CRAN Task Views CRAN task views aim to provide some guidance which packages on CRAN are relevant for tasks related to a certain topic. They give a brief overview of the included packages which can also be automatically installed using the ctv package. The
cran.r-project.org
인터넷 키워드 검색
- R 유저간 네트워크 매우 활발
- 검색 엔진의 발전으로 간편한 검색 가능
패키지 설치 및 사용
설치 방법
- 함수를 이용하여 설치
: install.packages("패키지명") - R 스튜디오 인터페이스 이용하여 설치
: Packages > Install > 패키지명 적은 후 Install - R 스튜디오 인터페이스 이용한 오프라인 설치 (패키지 파일을 가지고 있는 경우 사용)
: Packages > Install > Install From > 다운로드 받은 패키지 파일 open > Install
설치 확인
- library()
- Package 창 활용
[172차시]변수, 함수, 패키지 정리 및 실습
QUIZ
- 변수는 객체를 담는 보관함 역할을 하며 <- 연산자를 통해 값을 할당한다.
- 변수를 선언만 하고 싶은 경우, NULL 값으로 초기화한다.
- 변수는 한번에 두 개 이상의 값으로 초기화 할 수 있다. (X)
: 반드시 한번에 하나의 값으로 초기화 할 수 있다. - 변수 선언 시, 숫자 또는 밑줄('_')로 변수명이 시작하는 것은 불가능하다. (O)
- 변수 선언 시, 변수명 두번째 글자부터는 특수문자 사용이 가능하다. (X)
: 변수명에 특수문자는 사용이 불가능하다. - 변수 선언 시, 알파벳 대문자와 소문자는 구분하지 않는다. (X)
: 구분한다. - 함수는 매개변수를 입력받아 정의된 내용을 실행하며, 결과값을 리턴하는 장치이다.
- 프로그램에서 기본적으로 정의되어 제공하는 함수를 내장함수라 부른다.
- 데이터 타입 강제 형변환 해주는 함수명은 as이다.
- 함수의 매개변수는 필수적 매개변수와 선택적 매개변수로 나뉘며, 필수적 매개변수는 생략가능하다. (X)
: 선택적 매개변수만 생략가능하다. - 내장 함수외에 사용자가 직접 함수를 만들 수 있으며, 사용자가 직접 만든 함수는 '사용자 정의 함수'라고 부른다. (O)
실습
#16차시 실습
age_mean <- mean(age)
print(age_mean)
balance_mean <- mean(balance)
print(balance_mean)
yToNum <- as.numeric(y)
yCount <- sum(yToNum)
print(yCount)
install.packages("stringr") # 설치
library(stringr) # 로딩
# job 컬럼 수정
job_new <- str_replace(job, "은퇴", "무직") # "은퇴"값을 "무직'으로 변경
print(job_new)
# marital 컬럼 수정
marital_new <- str_replace(marital, "결혼", "T") #"결혼"값을 "T"로 변경
print(marital_new)
marital_logical <- as.logical(marital_new) # marital_new 벡터 logical로 강제 형변환
print(marital_logical) #"T", "F"외의 값은 NA로 변경됨
marital_logical[is.na(marital_logical)] = FALSE # NA값을 F로 변환
print(marital_logical)
# result_new 변수에 수정된 데이터 프레임 할당 및 출력
result_new <- data.frame(age, job_new, marital_logical, balance, campaign, y)
print(result_new)
👥 파트너간 상보적 학습 및 강의 내용 리뷰
오늘은 R에 대한 기초적인 내용을 학습하고 있어서 다들 크게 어려운 부분은 없으셨던 것 같다. 다만 파이썬, SQL등의 언어와 비슷하지만 다른 부분이 많아 헷갈리는 경우가 많다고 하셨다. 나 역시 그렇게 생각했고, 헷갈리지 않게 잘 공부해두어야겠다고 생각했다.
🙋♀️ 질문&답변
🤷♀️ [Q] class(TRUE)를 입력하면 결과로 "logical" 이 나오는데,
a라는 변수에 TRUE를 할당한 후 ( a <- TRUE )
b <- class(a)를 하면 class(b)가 "character"이 나오고
c <- print(a)를 하면 class(c)가 "logical"이 나옵니다.
위 논리들의 차이가 무엇인지 궁금합니다.
💁♂️ [A] class(TRUE) 했을 때의 결과인 "logical"의 데이터 타입 character이기 때문에 class(b)의 결과로 character이 나온다.
- 파이썬 기본 3요소: numpy, pandas, matplotlib
- <- 단축키: alt + -
- 변수삭제: rm(변수)
- 전체 변수 삭제: 초기화(list=ls())
벡터 만들기 연습
# 1부터 10까지의 숫자로 이루어진 벡터 만들기
c(1,2,3,4,5,6,7,8,9,10)
c(1:10)
seq(1,10)
seq(1,10,1)
# 다음 숫자로 이루어진 벡터 만들기
c(1:3, 50:55)
#1부터 100까지 3간격의 숫자로 이루어진 벡터 만들기
seq(1,100,3)
#0.1부터 1까지 0.1간격의 숫자로 이루어진 벡터 만들기
seq(0.1, 1, 0.1)
#1을 5개 만들기
rep(1,5)
#1,2,3을 5번 반복
rep(c(1,2,3),5)
rep(c(1:3),5)
벡터 인덱싱/슬라이싱
absent <- c(3,2,0,4,1)
absent[1] #월요일 결석
absent[-3] #수요일 빼고
#월화수 데이터만 가져오기기
absent[1:3]
absent[-4:-5]
absent[-c(4,5)]
#불린 인덱싱
#1,3,5번째 요소만 인덱싱
absent[c(T,F,T,F,T)]
#팬시 인덱싱
#1,3,5번째 요소만 인덱싱
absent[c(1,3,5)]
#벡터 absent 각 요소에 이름 붙이기
names(absent) <- c('Mon','Tue','Wed','Thr','Fri')
absent
#이름으로 요소 접근하기
#Mon요소 가져오기
absent['Mon']
#Mon, Wed 요소 가져오기
absent[c('Mon','Wed')]
✍️ 마무리하며
어떤 프로그램을 처음 배울때 프로그램의 사용 방법에 관한 설명없이 코드부터 설명해주는 경우가 많다. 그러다보면 사소한 기능 사용의 어려움을 겪게 되는 경우가 많은데, 이번 R 강의의 경우 기본 사용법부터 유용한 환경설정 세팅까지 차근차근 짚어주셔서 처음만난 R이라는 프로그램을 자세히 알아갈 수 있었다. 문제 풀이도 따로 마련되어 있어서 내가 어느 부분을 헷갈려하지 정확하게 파악할 수 있었다.
막상 멘토링시간에 문제를 직접 풀으려니 벡터의 개념이 헷갈렸다. 여러 가지 문제를 풀면서 내가 이해한 바로는는 콜론(:)을 사용할 때는 벡터를 사용하지 않는데 콤마(,)를 사용할 때는 벡터를 사용하는 것 같다.
R이 처음이라 코드 하나하나 직접 쳐보며 연습하다보니 강의 듣고 TIL까지 작성하는데 평소보다 더 오래걸렸다..! 하지만 눈으로만 보고 넘기기에는 너무 낯설어서🥲 낯선만큼 시간을 더 써야지 어쩌겠나~
그리고 R에 코드를 치는데 자꾸 주석이 메아리친다. # 로딩딩 # 형변환환
티스토리는 자꾸 마지막 한글자가 지워진
왜이러는걸까.. 하나하나 다시 써주고 지워주기 너무너무 귀찮다.

* 유데미 큐레이션 바로가기 : https://bit.ly/3HRWeVL
* STARTERS 취업 부트캠프 공식 블로그 : https://blog.naver.com/udemy-wjtb
📌 본 후기는 유데미-웅진씽크빅 취업 부트캠프 4기 데이터분석/시각화 학습 일지 리뷰로 작성되었습니다.
'교육 > 유데미 스타터스 4기' 카테고리의 다른 글
[👩💻TIL 13일차 ] 유데미 스타터스 취업 부트캠프 4기 (1) | 2023.02.23 |
---|---|
[👩💻TIL 12일차 ] 유데미 스타터스 취업 부트캠프 4기 (0) | 2023.02.22 |
유데미 스타터스 취업 부트캠프 4기 - 데이터분석/시각화(태블로) 2주차 학습 일지 (1) | 2023.02.17 |
[👩💻TIL 10일차 ] 유데미 스타터스 취업 부트캠프 4기 (0) | 2023.02.17 |
[👩💻TIL 9일차 ] 유데미 스타터스 취업 부트캠프 4기 (2) | 2023.02.16 |