1.R이란?
R은 통계 계산과 그래픽 처리를 위한 무료 소트프웨어 환경(R is a free software environment for statistical computing and graphics.)으로 통계 프로그래밍 언어인 S 언어 기반으로 만들어졌으며 통계 계산과 결과 생성 그래픽을 위한 프로그래밍 언어이다.
R은 통계 분석 기능을 제공하는 것 뿐만 아니라, 분석 자동화 및 새로운 기능을 사용자가 직접 만들어낼 수 있는 다재다능한 일반 목적의 프로그래밍 언어이기 때문이라는 것이 우리가 자주 사용하는 엑셀과 비교했을 때의 R의 가장 큰 차이이자 장점이라고 할 수 있을 것 같다.
나는 파이썬-아나콘다를 거쳐 배우게 되는 빅데이터 처리 및 관리 전 단계로 학습하게 되었다.
RStudio는 R을 위한 자유오픈소스 통합개발 환경(IDE)이다.
=============
이번 수업을 위해
R: 4.2.2ver => #R 4.2.2에서는 utf-8사용. 텍스트 파일 입력시 ANSI를 UTF-8로 변경 필요
RStudio: 2022.12.0-353.exe
를 사용하였다.
==================
간략 정리
| #한줄실행 crl+ENTER #전체실행 ctl+shift+ENTER print(pi,digit=5) #digit 을 5개만 찍어라. print(3,4)#컴마를 찍으면 앞에 하나만 찍음 #cat() 2개 이상의 문자를 출력하기 cat(1,':','a') #숫자와 문자를 여러개 출력가능. # 수의 표현식 3e+2 #300 3e-2 #0.03 #문자를 숫자로 변환 함수수 as.numeric('1')+as.numeric('2') 'a' #문자 a "a" #문자 a #sum() : 숫자들의 합을 출력하는 함수 sum(1,2,3) sum(1,2,NA) #NA: NULL #NA값을 제외하고 결과 출력하기 #NA.RM=t: NA값을 제거. sum(1,2,NA,na.rm=T) n<-NA n sum(1,2,n) #NA결과 출력. n변수의 값이 NA n<-10 sum(1,2,n) #13결과 출력. n변수의 값이 10 ### Facter 자료형: 범주를 가지고 있는 자료형. #순서가 있는 Facter : 순위형 데이터 #순서가 없는 Facter : 명목형 데이터 # 범주를 R에서는 level이라 부른다. data<-c(3,2,2,1,1,2,3,3,2) data fdata<-factor(data) fdata #txtl$blood: txtl 저장된 표에서 컬럼값이 blood인 값들. txtl$blood ###날짜, 시간 관련 함수 #오늘날짜 Sys.time() #날짜지정: as.Date('..') date1<-as.Date('2023-02-06') #형식부분 설정 date2<-as.Date('14-05-2021', format='%d-%m-%Y') #날짜 자료형의 연산 as.Date('2021-05-13') - as.Date('2021-05-10') #날짜-날짜: 두 날짜 사이의 일수를 리턴 '2021-05-13'-'2021-05-10' #문자-문자: 오류 발생 #vector 형태로 날짜 데이터를 저장 #seq() 날짜를 순차적으로 저장하기 date1 = seq(from=as.Date('2021-05-01'), to=as.Date('2021-05-31'),by=1) date1 #월 기준 순차 날짜 데이터 저장하기 date2 = seq(from=as.Date('2021-05-01'), to=as.Date('2021-12-31'),by='month') date2 #년기준 순차 날짜 데이터 저장하기 date3=seq(from=as.Date('2020-01-01'), to=as.Date('2030-12-31'), by='year') date3 #생성된 변수들 조회하기 objects() #생성된 변수들 조회하기. 숨김 변수도 조회하기 objects(all.name=T) #생성된 변수 제거하기 rm(a) ls() #현재 생성중인 변수들을 제거하기 rm(list=ls()) a=1 b=2 rm(list=objects()) #vector : 한줄 데이터 여러개를 저장. vec1=c(1,2,3,4,5) vec1 #3번째 있는 요소를 조회 vec1[3] #index값하여 한개의 요소만 조회 #3번째 있는 요소만 제외하고, 나머지 요소 조회 vec1[-3] #벡터의 요소의 길이 조회하기 length(vec1) #vec1벡터 객체에서 처음부터 총길이에서 2개만 제외하고 출력하기 vec1[1:(length(vec1)-2)] #벡터 요소의 연산 c(1,2,3)+c(4,5,6) #벡터+벡터 c(1,2,3)+1 #벡터+숫자 union(v1,v3) #데이터 형이 다른 경우 union을 이용하여 숫자형태가 문자형태로 변경되어 합집합을 생성함. #차집합: v4에 있고, v1벡터에는 없는 요소 출력하기 setdiff(v4,v1) setdiff(v1,v4) #교집합 : v4,v1벡터에는 공통요소 출력하기 intersect(v1,v4) #숫자인 경우 요소의 평균 구하기 mean(v4) #v1벡터에 이름 설정하기 names(v1)<-c('a','b','c') |
##seq(), rep() 함수를 이용하여 벡터 객체 생성하기 v5<-seq(1,5) v6<-1:6 v7<-seq(2,-2) v8<-seq(1,10,2) #1부터 2씩 증가시켜 10까지 수를 벡터의 요소로 저장하기 #1부터 3까지 값을 각각 2번씩 벡터의 요소로 저장함 v10<-rep(1:3, each=2) #v10벡터의 내부의 요소를 찾기 3%in% v10 #true, v10벡터에 3요소 존재 # 값 %in% 벡터 : 벡터에 값이 존재하면 TRUE, 없으면 FALSE 리턴. # 값 %in% 벡터 : 벡터에 값이 존재하면 TRUE, 없으면 FALSE 리턴. 3 %in% x ################################### # matrix : 2차원배열 #matrix(data, nrow=2, ncol=숫자, byrow=,dimnames=) # data :데이터 # nrow=2 :행의 수를 설정 # ncol=2 : 열의 수를 설정 # byrow=T: 데이터 배치시 행우선(T), 열우선(F), 기본값은 F. # dimnames:행과 열의 이름 리스트 형태로 설정 ################################### #값을 조회 #1열의 값을 조회하기 mat3[,1] #2행 2열의 값을 조회하기 mat3[2,2] #mat5 변수에 1,9까지의 숫제를 3행 3열짜리 matrix로 생성하기 mat5<-matrix(1:9, nrow=3, byrow=T) #rbind() : 행을 추가, 기존의 matrix의 열의갯수와 추가되는 행(row)의 열(column)의 갯수가 동일해야함 mat5<- rbine(mat5,c(11,12,13)) #rbind() :새로운 행을 추가하기 mat5<-rbind(mat5,c(10,11,12,13)) #열의 갯수가 다를 경우 오류 발생함. #cbine(): 열(column)을 추가. 기존의 matrix의 행의 갯수와 추가되는 열의 행의 갯수가 동일해야하 함. mat6<- matrix(c('a','b','c','d'), nrow=2, byrow=T) #nrow() : 행의 갯수를 리턴 nrow2(mat6) #ncol(): 열의 갯수를 리턴 ncol(mat6) #mat6의 전체 요소의 갯수 리턴 length(mat6) #matrix의 연산 #행렬성분의 곱 a*b #행렬의 곱(이게 중요해~~ a의 행과 b의 열을 곱하는 것) a%*%b c<-matrix(c(1,-2,4,-1,3,-5,2,7,5),3,3) #3행 3열 행열 생성 c #c 행렬의 전치 행렬: 행렬이 열행으로 변환된 행열. t(c) #c 행렬의 역행렬: 행열이 열행으로 변환된 행열: 행렬의 곱의 결과가 c1=solve(c) c %*% c1 #단위행렬이 나옴. #각 요소들의 합계, 평균 x<-rep(1:4,3) x x[9]<-NA #벡터의 9번째 요소의 값을 NA로 설정 x #x를 4행 3열의 행열로 구성하기 m<-matrix(x,nrow=4) #colSums : 열별 합계 구하기 colSums(m) #1행 3열의 NA값 때문에 3열의 합이 NA로 리턴 #rowSums : 행별 합계 구하기. rowSums(m, na.rm=T) arr1<-array(c(1:12), dim=c(4,3)) #4행3열 2차원 배열 생성. #3차원 배열로 생성. arr2<-array(c(1:12), dim=c(2,2,3)) #2,2,3, 3차원 배열 생성. #dim() 배열의 구조를 리턴 dim(arr2) list1<-list(name='James Seo', address='Seoul', tel='010-8706-4712', pay=500) list1 #list1 객체 name 정보 조회하기 list1$name ##list1 리스트 객체에 저장된 키가 name인 데이터의 값을 리턴. list1[2:3] #2~3 list1[c(1,4)] #1과 4 #dataframe 객체로 생성하기 sales<-data.frame(No=no, NAME=name, Price=price, QTY=qty) |
'STUDY > R' 카테고리의 다른 글
| R_RStudio(IDE)_학습하기(4) (0) | 2023.02.13 |
|---|---|
| R_RStudio(IDE)_학습하기(3) (0) | 2023.02.13 |
| R_RStudio(IDE)_학습하기(3) (0) | 2023.02.09 |
| R_RStudio(IDE)_학습하기(2) (0) | 2023.02.08 |