profile image

L o a d i n g . . .

Published 2022. 10. 23. 18:03

이번 학기에 R 프로그래밍 수업을 듣게 되었다.

그래서 중간고사 공부 겸 R 프로그래밍 기본 문법을 정리해보려고 한다!

 

변수 할당

x<-2	#x에 2를 저장
x2<-3
x.2<-3
a.x.2<-5
a_x<-2

area <- pi*(radius^2)	#area에 𝜋 ×radius ×radius를 저장

 

 

벡터

수치형 벡터

# 1,4,6이 저장된 벡터 형성
x <- c(1,4,6)

# 1,2,3,4,5,6,7,8,9,10이 저장된 벡터 형성
x <- c(1,2,3,4,5,6,7,8,9,10)
y <- 1:10

 

요인형 벡터

F1 <- c(“A”,”B”,”C”,”A”,”B”,”A”)
F2 <- factor(F1)
  • 값들의 카테고리가 정해져 있는 벡터로, factor()를 통해 생성

 

논리형 벡터

F1<-c(TRUE, TRUE, FALSE, TRUE)

 

벡터 요소 추출

z[1]  # z벡터에서 첫 번째 요소 추출
z[c(1,3)]  # z벡터에서 첫 번째, 세 번째 요소 추출

방법1) 특정 위치를 넣어서 추출

z=c(“A”,”B”, “C”)
z[c(TRUE, FALSE, TRUE)]  # 결과값은 c(“A”,”C”)

방법2) 각 위치에 TRUE, FALE를 넣어서 추출

 

관계 연산자

threeM <-c(3,6,9)
threeM>4  # 실행 결과 : c(FALSE, TRUE, TRUE)
threeM==4 실행 시  # 실행 결과 : c(FALSE, FALSE, FALSE)
threeM!=4 실행 시  # 실행 결과 : c(TRUE, TRUE, TRUE)
  • 관계 연사자로 TRUE, FALSE 결과 내기

 

 

행렬과 배열

행렬

m<-matrix(1:6, nrow=2, ncol=3)
m<-matrix(1:6, nrow=2)
m

m[1,2]
m[3]
m[1,]
  • 행렬: 행과 열로 구성되는 2차원 배열
  • matrix(값, nrow = 행의 개수, ncol = 열의 개수, byrow = FALSE(디폴트 값), dimnames = NULL)

 

배열

a<-array(1:24, c(3,4,2))
a<-array(1:24, dim=c(3,4,2))
a
  • 배열: 한 개의 이상의 벡터로 구성되며, 동일한 데이터 유형
  • array(값, dim = c(행의 개수,열의 개수,페이지(=차원)의 개수), dimnames = NULL)

 

 

내장 함수

x<-1:5		#x에 c(1,2,3,4,5)저장
sum(x)		#x의 값들을 모두 더하기
mean(x)		#x의 값들의 평균 구하기
median(x)	#x의 값들의 중앙값 구하기
min(x)		#x의 값들의 최소값 구하기
max(x)		#x의 값들의 최대값 구하기
length(x)	#x의 값들의 개수 구하기
range(x)	#x의 값들의 최대값과 최소값 구하기
quantile(x)	#x의 값들의 사분위수 구하기
unique(x)	#중복된 값을 제거
  • 내장된 함수를 활용한 벡터 계산

 

as.numeric()	#수치형 벡터로 변환
as.character()	#문자형 벡터로 변환
as.factor()	#요인형 벡터로 변환
  • 내장된 함수를 활용한 벡터 변환

 

 

반복문

#i가 1에서 10까지 돌아가는 동안 print(i)를 실행
for (i in 1:10) {
print(i)
}
  • for(name in vector) {commands}

 

j=0
while(j<10){
  print(j)
  j=j+1
}
  • while(condition) {statement}

 

 

조건문

#결과값으로 '보류'를 출력한다.
grade <- "B"
if (grade=="A"){
print("합격")
} else if (grade=="B"){
print("보류")
} else {
print("불합격")
}
  • if (condition) {commands when TRUE}
  • if (condition) {commands when TRUE} else {commands when FALSE}

 

 

문자열

문자열 함수 정리

install.packages("stringr")	#문자열 다루는 패키지 설치
library(stringr)		#문자열 패키지 활용 선언

str_c(v1,"D")		#v1 벡터에있는 각 원소의 뒤에 D를 붙인다.
str_trim(v1)		#v1 벡터에 있는 원소들의 양 옆 빈공간을 없앤다.
str_sub(v1,10,12)	#v1 벡터에 있는 원소들로부터 10번째부터 12번째까지 추출
str_sub(v1,-3,-1)	#v1 벡터에 있는 원소들로부터 뒤에서 3번째부터 1번째까지 추출

grep("man", string1)				#string1 벡터에서 man이 포함된 문자열의 위치를 리턴
grep("man", string1, value=TRUE)		#string1 벡터에서 man이 포함된 문자열의 값을 리턴
grepl("man", string1)				#string1 벡터에서 man이 포함되었다면 TRUE, 아니라면 FALSE 리턴 (대소문자 구분O)
grepl("man", string1, ignore.case = TRUE)	#string1 벡터에서 man이 포함되었다면 TRUE, 아니라면 FALSE 리턴 (대소문자 구분X)

 

str_split(string1, pattern=" ")		#string1을 pattern에 입력된 값을 기준으로 나눈다. (결과값이 리스트로 출력)
gsub("[aeiou]", "-", fruits)		#string1의 a,e,i,o,u 알파벳을 모두 –로 바꾸시오.
gsub("two", "-", fruits)		#string1의 two를 –로 바꾸시오.
gsub("[0-9]", "", fruits)		#string1의 모든 숫자를 를 “”로 바꾸시오. (없애시오)
gsub("[a-zA-Z]", "", fruits)		#string1의 모든 영어 알파벳을 “”로 바꾸시오. (없애시오)

 

 

날짜

날짜 인식

install.packages("lubridate")	#날짜 패키지 설치
library(lubridate)		#날짜 패키지 활용 선언
ymd(날짜)		#숫자 혹은 문자로 인식된 날짜를 날짜 형식으로 인식시킨다. 단, 년도 → 월 →일 순서로 적혀있어야한다.
mdy(날짜)		#월 → 일 →년도 순서로 적혀있어야한다.
dmy(날짜)		#일 → 월 →년도 순서로 적혀있어야한다.

 

날짜 함수

year(dayday)		#년도 추출하기
month(dayday)		#월 추출하기
day(dayday)		#일 추출하기
week(dayday)		#해당 년도 몇 번째 주인지
wday(dayday, label=TRUE)#요일
yday(dayday) 		#해당 년도 몇 번째 날인지
semester(dayday) 	#상반기=1, 하반기=2
quarter(dayday)		#1분기=1, 2분기=2, 3분기=3, 4분기=4

 

날짜 차이 구하기

as.numeric(y-x)
as.numeric(difftime(y,x))
  • 날짜로 인식된 x와 y를 대입한다.

'Programming Languages > R' 카테고리의 다른 글

[R] 데이터 프레임  (0) 2022.10.27
복사했습니다!