x <- 6
x
13%%5 # 나머지 구하기
x=seq(1,10)
x
y=x^2
y
plot(x,y)
x <- 2
a="low"
### 1장. r언어
##
## 오브젝트1-함수,벡터,행렬
##
# 오브젝트: 데이타세트, 함수, 산출모형 등 독자적인 것. 다수 추상적. ls()로 열거, 확인
# 함수: read.table(), hist(), help() 등 괄호의 입력값을 받아서 특정한 출력 또는 기능을 하는 명령어
# 데이타세트: 벡터, 매트릭스, 어레이, 데이타프레임, 리스트 등
# R을 배운다 = R의 함수, 데이타세트 등 오브젝트에 대해 알아 가는 것
# 객체(오브젝트) 지향적, 함수형 프로그래밍 언어
#수치형, 문자형 변수
x=2 #수치형 변수
a="low" #문자형 변수
## 벡터
# 벡터 만드는 함수: c는 결합, combine 함수
x=c(2,2,4)
a=c("low","high","high")
ls() # ls()오브젝트 열거 / rm()는 변수 삭제
str(a) # 오브젝트 구조 설명 / chr는 문자
length(x) # 벡터 길이 제공 함수
# 자동으로 벡터 만들기
1:10
seq(1,10,1) # 1에서 10까지 간격은 1로
seq(0.1,1.2,0.11)
rep(1,10) # 1을 10번 반복해라
## 행렬
y <- c(1.2,3.0,4.8)
c(x,y) # x와 y가 결합됨
M=matrix(c(x,y),ncol=2) # matrix는 행렬만들기 함수 / 앞의 벡터 값으로 열의 수가 2개인 행렬을 만들어라
M
# 디폴트는 컬럼을 하나씩 채워가는 bycol=T
M1=matrix(c(x,y),ncol=2, byrow=T)
M1
M2=matrix(c(x,y),nrow=2) # 행의 수가 2개인 행렬을 만들어라
M2
M1;M2 # ;은 명령어 여러개를 한 줄에 칠 수 있도록 만들어줌
c(x,a) # 붙여지긴 하지만 모두 문자형으로 치환이 됨
matrix(c(x,a)) # matrix는 같은 유형의 벡터이어야 한다. 수치형과 문자형이 같이 들어오면 문자형으로 간주
# 결합으로 행렬만들기
M2=cbind(x,y);M2
M3=rbind(x,y);M3
nrow(M2)
ncol(M2)
ls() # matrix도 오브젝트이다.
##
## 연산1
##
## 연산과 논리(14)
x=c(2,2,3)
x^3+1
y=c(1.2,3.0,4.8)
x*y # element wise 연산
x/y
round(x/y,2) # 두번째 자리까지만 표기해라
## 행렬연산
M= cbind(x,y);M
t(M) # transpose 전치
M1=t(M)%*%M ; M1 # %*%는 행렬곱 연산
b=c(1,2)
M1*b # element wise 계산 첫번째 행에 1을 곱하고 두번째 행에 2를 곱함
M1%*%b # 행렬곱
x=seq(0,9.9,0.1);x # 수열함수
x=x+0.25;x
M2=matrix(round(x,2),ncol=10,byrow=T) # 행렬만들기 matrix
M2
solve(M1) # 역행렬
solve(M1)%*%M1 # 단위행렬이 나오는지를 확인
E=eigen(M1,symmetric = T);E # 대칭행렬에 대한 고유값과 고유벡터/ 리스트
E$vectors%*%diag(E$values)%*%t(E$vectors) # diag 대각행렬 함수 # 원래행렬로 복귀
## 논리연산(17)
g=c(T,F,T,T);g # logical, 논리형 변수
f=c(1.2,2.0,3.1,4.9)
d=f>3.14;d
e=as.numeric(d) ; e # 숫자형으로 전환 false는 0으로 true는 1로
str(d);str(e)
c1=c(T,T,F,F); c2=c(T,F,T,F)
c1|c2
c1&c2
#자료의 subset 만들기. 파이썬에서 슬라이싱
f[f>3.4]
f[f==3.4]
f[f<3.4]
f[c(T,F,F,F)] # TRUE값만 뽑아줘
## 결측값(18)
x=c(2,2,3,NA)
mean(x)
mean(x,na.rm=T)
(2+2+3)/3
0/0
1/0
10^seq(100,1000,100) # 300승까지는 취급. 그 이상은 무한대로 처리
## 요인(18)
species=c(1,3,2,3)
species.f=factor(species)
levels(species.f)=c("setosa","versicola","virginica") # level 교체
species.f
table(species.f) # 요인 수준별 빈도
species.o=ordered(species,level=1:3) # 순서를 가지는 범주형 요인 정의
species.o
table(species.o)
##
## 오브젝트2-데이터프레임, 리스트(7~14페이지)
##
## 데이터프레임: 다른 유형의 변수도 포함
x=seq(1,9.9,1); x
a=LETTERS[1:9]; a
d1=data.frame(xx=x, aa=a);d1
str(d1)
L3 <- LETTERS[1:3]
char <- sample(L3,10,replace=T); char
d <- data.frame(x=1,y=1:10,char=char) ; d
str(d)
# read.table로 만든다: text 자료 읽기
'학교공부 > 탐색적자료분석' 카테고리의 다른 글
탐자분_기말고사대비 (0) | 2024.09.09 |
---|---|
2주차_R코드_list/인덱싱/array/자료변환/apply/loof/임의수생성/사용자정의함수/R그래픽스 (0) | 2024.03.18 |