STUDY/R

R_RStudio(IDE) 학습하기

oort2 2023. 2. 7. 23:31

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