๊ฐœ์ธ๊ณต๋ถ€/R

11. R์ •๋ฆฌ (๊ธฐ๋ณธ์•ฝ์†, ํ•จ์ˆ˜, ๋ฐ์ดํ„ฐ์ข…๋ฅ˜)

LEE_BOMB 2021. 9. 25. 23:34

1. ๊ธฐ๋ณธ์•ฝ์†


๋‹จ์ถ•ํ‚ค ๋ฐ ์ฝ˜์†”์ฐฝ ๋ช…๋ น์–ด
Ctrl + L ์ฝ˜์†” ์ฐฝ ๋น„์šฐ๊ธฐ

help() : ํ•จ์ˆ˜ ์‚ฌ์šฉ๋ฒ•

history() : ์ตœ๊ทผ ์‚ฌ์šฉํ•œ ๋ช…๋ น์–ด 25๊ฐœ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
rm(list=ls()) ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ง€์šฐ๊ธฐ


lnstall.package("ํŒจํ‚ค์ง€๋ช…") : ํŒจํ‚ค์ง€ ์„ค์น˜
search() : ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ํ™•์ธ
la("package:ํŒจํ‚ค์ง€๋ช…") : ํŒจํ‚ค์ง€ ๋‚ด ํ•จ์ˆ˜ ํ™•์ธ
detach(package:ํŒจํ‚ค์ง€๋ช…) : ํŒจํ‚ค์ง€ ์‚ญ์ œ
library(ํŒจํ‚ค์ง€๋ช…) : ํŒจํ‚ค์ง€ ๋ฉ”๋ชจ๋ฆฌ ์ ์žฌ

 

class() : ์ž๋ฃŒ๊ตฌ์กฐ ํ™•์ธ
load("ํŒŒ์ผ๋ช…") : RdaํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
mode()


๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜
์ƒ์ˆ˜ : ์˜๋ฏธ๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ex) 1,2,3... "a",'b'...
๋ณ€์ˆ˜ : ์ž๋ฃŒ๋ฅผ ๋‹ด๋Š” ๊ทธ๋ฆ‡
๋ณ€์ˆ˜์— ์ƒ์ˆ˜ ํ• ๋‹น : (๋ณ€์ˆ˜) <- (์ƒ์ˆ˜), (๋ณ€์ˆ˜) = (์ƒ์ˆ˜)
* observations (obs) ์—ด, ๊ด€์ธก์น˜
variables(variable) ํ–‰, ๋ณ€์ˆ˜ 


์‚ฐ์ˆ ์—ฐ์‚ฐ
+
-
*
/
^, ** ์ œ๊ณฑ
%/% ๋‚˜๋ˆ—์…ˆ์˜ ๋ชซ
%% ๋‚˜๋ˆ—์…ˆ์˜ ๋‚˜๋จธ์ง€


๊ด€๊ณ„์—ฐ์‚ฐ์ž 
<
>
== ex) A==2 : A์ค‘์— 2๋ฅผ TRUE, ์•„๋‹Œ ๊ฒƒ์€FALSE๋กœ ํ‘œ์‹œ
!= ex) not equal. A !=2๋Š” 2๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ TRUE, 2๋ฅผ FALSE๋กœ ํ‘œ์‹œ
>=
<= ex) A<=3 : A์— 3๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฒƒ์€ TRUE๋กœ, ์•„๋‹Œ ๊ฒƒ์€ FALSE ์ถœ๋ ฅ
& ex) AND
| ex) OR
%in% ๋งค์นญํ™•์ธ
||

which(A==5) : A์—์„œ 5๋Š” ๋ช‡๋ฒˆ์งธ์— ์žˆ๋Š”๊ฐ€
sum(A>2) : A์—์„œ 2๋ณด๋‹ค ํฐ ๊ฐ’์˜ ์ˆ˜
sum(A[which(A>2)]) : A์—์„œ 2๋ณด๋‹ค ํฐ ๊ฐ’์„ ๋‹ค ์ฐพ์€ ๋‹ค์Œ ๊ทธ ๊ฐ’์„ ์ „๋ถ€ ๋”ํ•จ (3+4+5=12)


๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž (TRUE/FALSE ํŒ๋ณ„)
&(=AND) 
|(=OR)
!(=NOT)

 

d = c(1:9)
condi = d>5 & d<8
d[condi] #6 7

* ์กฐ๊ฑด์„ ๋ณ€์ˆ˜์— ์ง€์ •ํ•˜๊ณ , ์ธ๋ฑ์Šค์— ์กฐ๊ฑด์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค

 

 




์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์ด์šฉํ•˜๊ธฐ
install.packages("readx1") : readx1 ํŒจํ‚ค์ง€ ์„ค์น˜
library(readx1) : readx1 ํŒจํ‚ค์ง€ ๋กœ๋“œ



์—‘์…€ ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
โ‘  DF๋ช… = read_excel("ํŒŒ์ผ๋ช….ํ™•์žฅ์ž")
* R์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐ™์€ ํด๋”์— ์žˆ๋Š” ๊ฒฝ์šฐ


โ‘ก ์ƒ๋Œ€ ๊ฒฝ๋กœ ์ง€์ •
DF๋ช… = read_excel("ํŒŒ์ผ๊ฒฝ๋กœ๋ช…")

* ์—‘์…€ํŒŒ์ผ ์ฒซ ๋ฒˆ์งธ ํ–‰์ด ๋ณ€์ˆ˜๋ช…์ด ์•„๋‹ˆ๋ผ๋ฉด
DF๋ช… = read_excel("ํŒŒ์ผ๋ช…", col_names=F)



CSVํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ/์ €์žฅํ•˜๊ธฐ
read.csv("ํŒŒ์ผ๋ช….ํ™•์žฅ์ž")

write.csv("ํŒŒ์ผ๋ช….ํ™•์žฅ์ž")



๋ฌธ์ž๊ฐ€ ๋“ค์–ด์žˆ๋Š” ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ
DF๋ช… = read.csv("ํŒŒ์ผ๋ช…", stirngsFactors=F)

 


๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ CSVํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ธฐ
wirte.csv(DF๋ช…, file = "ํŒŒ์ผ๋ช….csv")




์‹œ๊ฐํ™” ๋„๊ตฌ
hist() : ํžˆ์Šคํ† ๊ทธ๋žจ ์ƒ์„ฑ
table() : ๋นˆ๋„ํ‘œ ์ƒ์„ฑ
plot() : ๊ทธ๋ž˜ํ”„๋กœ ์ถœ๋ ฅ
qpolot (data=ํ…Œ์ด๋ธ”๋ช…, x=๋ณ€์ˆ˜๋ช…, y=๋ณ€์ˆ˜๋ช…, geom=๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ) : x,y์ถ•์„ ๊ฐ€์ง„ ๋นˆ๋„ ๊ทธ๋ž˜ํ”„๋กœ ์ถœ๋ ฅ
* ๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ : line, boxplot, colour=drv





2. ํ•จ์ˆ˜

range() : ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„ (์ตœ๋Œ€๊ฐ’~์ตœ์†Œ๊ฐ’) ์ถœ๋ ฅ

length() : ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด ์ถœ๋ ฅ
nrow() : ํ–‰์˜ ์ˆ˜(=์„ธ๋กœ์ค„์˜ ์ˆ˜) ์ถœ๋ ฅ

ncol() : ์—ด์˜ ์ˆ˜(=๊ฐ€๋กœ์ค„์˜ ์ˆ˜) ์ถœ๋ ฅ

์ˆซ์ž๋ฅผ ๋‹ค๋ฃจ๋Š” ํ•จ์ˆ˜
mean(n) : n์˜ ํ‰๊ท 
median(): ์ค‘์•™๊ฐ’
var(): ๋ถ„์‚ฐ๊ฐ’
sd(): ํ‘œ์ค€ํŽธ์ฐจ
max(n) : n์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’
min(n) : n์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’
sum() : ์ „์ฒด ๋‹ค ๋”ํ•˜๊ธฐ

sqrt() : ()์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ์ˆ˜์˜ ๋ฃจํŠธ๊ฐ’์„ ๊ณ„์‚ฐ
print(x*y) or print(x/y): x์™€ y์˜ ๊ณฑ ๋˜๋Š” ๋‚˜๋ˆ—์…ˆ์„ ํ”„๋ฆฐํŠธ

 

sort(๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„, ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’) : ์ •๋ ฌํ•จ์ˆ˜

sort(DF๋ช…, decreasing=FALSE) : ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ, ๊ธฐ๋ณธ๊ฐ’

sort(DF๋ช…, decreasing=TRUE) : ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

* ๋งค๊ฐœ๋ณ€์ˆ˜ = ํ•จ์ˆ˜์˜ input๊ฐ’ = parameter

๋ฌธ์ž๋ฅผ ๋‹ค๋ฃจ๋Š” ํ•จ์ˆ˜
paste : ๋‹จ์–ด๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๊ธฐ
past(๋ณ€์ˆ˜, collapse="๋‹จ์–ด ์‚ฌ์ด์— ๋“ค์–ด๊ฐˆ ๋ฌธ์ž")


์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜
โ‘  ํ•จ์ˆ˜๋ช… = function(์ธ์ˆ˜){์‹คํ–‰๋ฌธ1 ์‹คํ–‰๋ฌธ2 return(๊ฐ’)}
fx = function(x){
  re = x^2 + x*2 + 5
  return(re)

โ‘ก ํ•จ์ˆ˜ ํ˜ธ์ถœ
re = fx(2)
cat('re=',re) #re=13

โ‘ข ์ธ์ˆ˜๊ฐ€ ์—†๋Š” ํ•จ์ˆ˜
f1 = function(){
  cat('์ธ์ˆ˜๊ฐ€ ์—†๋Š” ํ•จ์ˆ˜')
}

โ‘ฃ ์ธ์ˆ˜๊ฐ€ ์žˆ๋Š” ํ•จ์ˆ˜
f2 = function(x){
  cat('x๊ฐ’=', x)
}

โ‘ค ๋ฐ˜ํ™˜๊ฐ’์ด ์žˆ๋Š” ํ•จ์ˆ˜
f3 = function(x,y){
  add = x+y
  return(add)
}

โ‘ฅ ํ‰๊ท  ๊ณ„์‚ฐ
avg = function(a,b,c){ 
  t= tot(a,b,c) #์ด์  ํ•จ์ˆ˜ ํ˜ธ์ถœ
  a=t/3
  return(a) #์ด์  ๋ฐ˜ํ™˜
}
* ํ‰๊ท ์€ ์ด์ ์ด ์žˆ์–ด์•ผ๋งŒ ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— returnํ•จ์ˆ˜ ํ•„์ˆ˜ 

ํ‰๊ท  ๊ณ„์‚ฐ2 (return ์ƒ๋žต)
avg = function(a,b,c){
  t=tot(a,b,c)
  a=t/3
  cat('์ด์ =', t, 'ํ‰๊ท =', a) #return(t,a)๋Š” error. ๋‘ ๊ฐœ์˜ ๊ฐ’์„ ๋™์‹œ๋ฐ˜ํ™˜ ๋ฐ›์„ ์ˆ˜ ์—†์Œ 
  df = data.frame(tot=t,avg=a) #๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์€ ์ƒ์„ฑ ๊ฐ€๋Šฅ. ํ•จ์ˆ˜์˜ ์ด๋ฆ„์„ ์„ ์–ธํ•ด์ฃผ๋ฉด ๊ฐ€๋…์„ฑ์ด ์ข‹์•„์ง
  return(df) 
}


๋ถ„์‚ฐ๊ณผ ํ‘œ์ค€ํŽธ์ฐจ
x = c(7,5,12,9,15,6)์ผ ๋•Œ,

mean(x) #9 ํ‰๊ท 
var(x) #14.8
sd(x) #3.84 ํ‘œ์ค€ํŽธ์ฐจ
sqrt(var(x)) #3.84 ๋ถ„์‚ฐ->ํ‘œ์ค€ํŽธ์ฐจ (์ œ๊ณฑ๊ทผ์˜ ๊ด€๊ณ„)
sd(x)^2 #14.8 ํ‘œ์ค€ํŽธ์ฐจ->๋ถ„์‚ฐ (์ œ๊ณฑ์˜ ๊ด€๊ณ„)
* ํ‘œ๋ณธ๋ถ„์‚ฐ : var = sum((x-์‚ฐ์ˆ ํ‰๊ท )^2) / (n-1)
* ํ‘œ๋ณธํ‘œ์ค€ํŽธ์ฐจ : sd = sqrt(var)

โ‘  ๋ถ„์‚ฐ๊ณผ ํ‘œ์ค€ํŽธ์ฐจ ํ•จ์ˆ˜
var_sd = function(x){
  #1.์‚ฐ์ˆ ํ‰๊ท 
  a=avg(x)
  #2.๋ถ„์‚ฐ
  var = sum((x-a)^2) / (length(x)-1)
  #3.ํ‘œ์ค€ํŽธ์ฐจ
  sd = sqrt(var)
  #4.๊ฒฐ๊ณผ์ถœ๋ ฅ
  cat('var=', var, '\n')
  cat('sd=', sd)
}






3. Data Type : ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•
์ˆซ์žํ˜•, ๋…ผ๋ฆฌํ˜•, ๋ฌธ์žํ˜•

numeric (์ˆซ์žํ˜•)
int ์ •์ˆ˜ํ˜•
double ์‹ค์ˆ˜ํ˜• : 3.12, 2.22...

logical (๋…ผ๋ฆฌํ˜•)
TRUE(T), FALSE (F)

character/string (๋ฌธ์žํ˜•)
"1", '2', "TURE", '์ผ'

missing value (๊ฒฐ์ธก๊ฐ’. ๋…ผ๋ฆฌํ˜•)
NA
is.na() ํ•จ์ˆ˜๋กœ ๋„์ถœ




 
4. Data Structure: ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ

Vector (๋ฒกํ„ฐ)
: ๋™์ผํ•œ ์ž๋ฃŒํ˜•์˜ ๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ ์—ฐ์†๋˜์–ด ์žˆ๋Š” 1์ฐจ์›์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
์ƒ์„ฑํ•จ์ˆ˜ : c(), seq(), rep()

โ‘  c(n) : ๋ฒกํ„ฐ์˜ ์›์†Œ ์ƒ์„ฑ

c(1,2,3) ์ˆซ์žํ˜• ๋ฒกํ„ฐ

c('a', "b", "b") ๋ฌธ์žํ˜• ๋ฒกํ„ฐ

c(TRUE, TRUE, FALSE, TURE) ๋…ผ๋ฆฌํ˜• ๋ฒกํ„ฐ

* ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ์— ๋ฌธ์ž/์ˆซ์ž๋ฅผ ์„ž์–ด์„œ ๋„ฃ์œผ๋ฉด ๋ชจ๋‘ ๋ฌธ์žํ˜•์œผ๋กœ ์ธ์‹


โ‘ก seq (์‹œ์ž‘, ์ข…๋ฃŒ, ๊ฐ„๊ฒฉ) or seq(from=a, to=b, by=c) : a๋ถ€ํ„ฐ b๊นŒ์ง€ c์”ฉ ์ฆ๊ฐ€
seq(from=a, to=b, by=-c) : a๋ถ€ํ„ฐ b๊นŒ์ง€ c์”ฉ ๊ฐ์†Œ


โ‘ขrep(์‹œ์ž‘, ๋ฐ˜๋ณตํšŸ์ˆ˜) or rep(a:b, 3) : a๋ถ€ํ„ฐ b๊นŒ์ง€๋ฅผ 3๋ฒˆ ๋ฐ˜๋ณต 

rep(a:b, times=3) : a b์ „์ฒด๋ฅผ 3๋ฒˆ ๋ฐ˜๋ณต

rep(a:b, each=3) : a์™€ b๋ฅผ ๊ฐ๊ฐ 3๋ฒˆ์”ฉ ๋ฐ˜๋ณต 

 

โ‘ฃ ๋ฐ์ดํ„ฐ vector ์š”์†Œ ๊ฐ’์— ์ด๋ฆ„ ๋ถ€์—ฌ

names() ํ•จ์ˆ˜ ์ด์šฉ

* ๊ณ„์‚ฐ์—๋Š” ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ณ , ๋‹จ์ง€ ๊ฐ’์˜ ์˜๋ฏธ๋ฅผ ๋ถ„๋ช…ํ•˜๊ฒŒ ๋ฐํžˆ๋Š” ์—ญํ• 

score = c(80, 65, 70)
score

names(score) = c('๋ด„','์žฌ์ธ','๋ณ‘ํ˜ธ')
score

 

โ‘ค ๋ฐ์ดํ„ฐ vector์— ์‚ฐ์ˆ  ์—ฐ์‚ฐ

d = c(1,4,3,7,9)
d
2*d #2  8  6 14 18
d-5 #-4 -1 -2  2  4
3*d-4 #-1  8  5 17 23


โ‘ฅ ๋‘ vector๊ฐ„ ์—ฐ์‚ฐ

x = c(1,2,3)
y = c(4,5)
c(x,y) #1 2 3 4 5
z = c(x,y)
z #1 2 3 4 5

*๋‹จ ๋‘ ๋ฒกํ„ฐ์˜ ๊ธธ์ด๊ฐ€ ๊ฐ™์•„์•ผ ํ•จ

 

โ‘ฆ ๋‘ ๋ฒกํ„ฐ ์—ฐ๊ฒฐ

x = c(1,2,3)
y = c(4,5,6)
x+y #5 7 9
z = x+y
z #5 7 9

* ๋Œ€์‘ํ•˜๋Š” ๋‘ ๋ฒกํ„ฐ์˜ ํ•ฉ ์ถœ๋ ฅ (์‚ฌ์น™์—ฐ์‚ฐ ๋ชจ๋‘ ์ ์šฉ๊ฐ€๋Šฅ)

 

 

 

Matrix (๋งคํŠธ๋ฆญ์Šค)
: ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์ €์žฅ๋œ 2์ฐจ์› ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
์ƒ์„ฑํ•จ์ˆ˜ : matrix(), rbind(), cbind()
์ฒ˜๋ฆฌํ•จ์ˆ˜ : apply

โ‘  matrix(์ž๋ฃŒํ˜•, ํ–‰์˜์ˆ˜, ์—ด์˜์ˆ˜, ์ •๋ ฌ๋ฐฉํ–ฅ) : ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ํ•จ์ˆ˜
m1 = matrix(data=a:b, nrow=c) : a๋ถ€ํ„ฐ b๊นŒ์ง€์˜ ๊ฐ’์„ ํ–‰ c๊ฐœ์˜ m1์œผ๋กœ ์ƒ์„ฑ
m1 = matrix(data = a:b, ncol=c) : a๋ถ€ํ„ฐ b๊นŒ์ง€์˜ ๊ฐ’์„ ์—ด c๊ฐœ์˜ m1์œผ๋กœ ์ƒ์„ฑ
* ํ–‰๋ ฌ์„ ์ฑ„์šธ ๋•Œ ์—ด์„ ๋”ฐ๋ผ ์„ธ๋กœ๋กœ ์ฑ„์›Œ์ง„๋‹ค
* byrow=TRUE : ํ–‰์„ ๋”ฐ๋ผ ๊ฐ€๋กœ๋กœ ์ฑ„์›Œ๋‚˜๊ฐ„๋‹ค

โ‘ก rbind : ํ–‰ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฒกํ„ฐ๋ฅผ ์ฑ„์šฐ๋Š” ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ํ•จ์ˆ˜
m1=rbind(a,b) : a์™€ b์˜ ๊ฐ’์ด ๊ฐ๊ฐ ํ–‰์œผ๋กœ ์ฑ„์›Œ๋‚˜๊ฐ€๋Š” m1 ์ƒ์„ฑ

a = 1:5
b = 6:10
m1 = rbind(a, b)
#์ถœ๋ ฅ๊ฐ’ 1 2 3 4 5
#      6 7 8 9 10


โ‘ข cbind : ์—ด ๋ฐฉํ–ฅ์œผ๋กœ ๋ฒกํ„ฐ๋ฅผ ์ฑ„์šฐ๋Š” ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ํ•จ์ˆ˜
m1=cbind(a,b) : a์™€ b์˜ ๊ฐ’์ด ๊ฐ๊ฐ ์—ด๋กœ ์ฑ„์›Œ๋‚˜๊ฐ€๋Š” m1 ์ƒ์„ฑ

a = 1:5
b = 6:10
m1 = cbind(a, b)
# ์ถœ๋ ฅ๊ฐ’ 1 6
#       2 7
#       3 8

 

โ‘ฃ ๋ฐ์ดํ„ฐ matrix ์š”์†Œ ๊ฐ’์— ์ด๋ฆ„ ๋ถ€์—ฌ

rownames() : ํ–‰ ์ด๋ฆ„ ๋ถ€์—ฌ

colnames() : ์—ด ์ด๋ฆ„ ๋ถ€์—ฌ

z = c(1:20)
z1 = matrix(z, 4, 5, T)
rownames(z1) = c("row1","row2","row3","row4")
colnames(z1) = c("col1","col2","col3","col4","col5")
z1
#       col1 col2 col3 col4 col5
# row1    1    2    3    4    5
# row2    6    7    8    9   10
# row3   11   12   13   14   15
# row4   16   17   18   19   20

 

โ‘ค matrix ๊ฐ„ ์‚ฌ์น™์—ฐ์‚ฐ

* ํ–‰/์—ด์˜ ์ˆ˜๊ฐ€ ๋™์ผํ•  ๋•Œ๋งŒ ๊ฐ€๋Šฅ

* ํ–‰๋ ฌ๊ณฑ ์—ฐ์‚ฐ์ž %*%

 

โ‘ฅ ํ–‰๊ณผ ์—ด ๋ณ€ํ™˜ํ•˜๊ธฐ

t()

 

โ‘ฆ ์ˆซ์ž๋กœ๋งŒ ๋œ data frame์„ matrix๋กœ ๋ณ€ํ™˜

as.matrix(DF๋ช…[ํ–‰:์—ด])

* matrix๋ฅผ data frame์œผ๋กœ ๋ณ€ํ™˜ : data.frame()

 

โ‘ง apply : ํ•จ์ˆ˜ ์ ์šฉ
m1=(data, ํ–‰/์—ด, ์ ์šฉ์‹œํ‚ฌ ์™ธ๋ถ€ํ•จ์ˆ˜)

 

 

Array (์–ด๋ ˆ์ด)
3์ฐจ์› ๋ฐฐ์—ด๊ตฌ์กฐ (์‚ฌ์šฉ๋นˆ๋„ ๋‚ฎ์Œ)
์ƒ์„ฑํ•จ์ˆ˜ : array (dim, data)

โ‘  array(a:b, dim=c(2,3,4)) : a๋ถ€ํ„ฐ b๊นŒ์ง€์˜ ์ˆซ์ž ๋ฒกํ„ฐ๋ฅผ 2ํ–‰ 3์—ด์˜ ํ–‰๋ ฌ 4๊ฐœ๋กœ ์ƒ์„ฑ
โ‘ก a = 1:12
arr = array(data = a, dim = c(2,3,4)) : 1๋ถ€ํ„ฐ 12๊นŒ์ง€์˜ ์ˆซ์ž ๋ฒกํ„ฐ๋ฅผ 2ํ–‰ 3์—ด์˜ ํ–‰๋ ฌ 4๊ฐœ๋กœ ์ƒ์„ฑ

 

 

 

DataFrame (๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„)
: 2์ฐจ์› ๋ฐฐ์—ด๊ตฌ์กฐ, ์นผ๋Ÿผ ๋‹จ์œ„๋กœ ์ƒ์ดํ•œ ์ž๋ฃŒํ˜•์„ ๊ฐ–๋Š”๋‹ค (๋‹จ, ์นผ๋Ÿผ๋ณ„ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๋™์ผ)
์ƒ์„ฑํ•จ์ˆ˜ : data.frame()
์ฒ˜๋ฆฌํ•จ์ˆ˜ : apply()

โ‘   df <- data.frame(NO=empno, NAME=ename, AGE=age, PAY=pay)
* ๋ณ€์ˆ˜ ์ด๋ฆ„ ์ง€์ • ๊ฐ€๋Šฅ

โ‘ก DF$column : ์ž๋ฃŒ ์ฐธ์กฐ
emp$PAY : emp์˜ PAY์นผ๋Ÿผ ๊ฐ’ ์กฐํšŒ
mean(pay) : PAY์นผ๋Ÿผ ๊ฐ’์˜ ํ‰๊ท 
round(mean(pay)) : PAY์นผ๋Ÿผ ๊ฐ’์˜ ์†Œ์ˆ˜์  ์ดํ•˜๋ฅผ ๋ฐ˜์˜ฌ๋ฆผ
* ์ƒ‰์ธ ๊ธฐ๋Šฅ๋ณด๋‹ค ์„ ํ˜ธ. matrix์—์„œ๋Š” ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ

 

โ‘ข ์กฐ๊ฑด์— ๋งž๋Š” ํ–‰(row) ์ถ”์ถœ

subset()

* matrix์—์„œ๋Š” ์ž˜ ์•ˆ๋จ

IR1 = subset(iris, Species=="setosa")
IR1

IR2 = subset(iris, Sepal.Length>5.0 & Sepal.Width>4.0)
IR2
#    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 16          5.7         4.4          1.5         0.4  setosa
# 33          5.2         4.1          1.5         0.1  setosa
# 34          5.5         4.2          1.4         0.2  setosa


โ‘ฃ APPLY() : ํ•จ์ˆ˜ ์ ์šฉ
apply(df, 2, mean) : ์—ด ๋‹จ์œ„์˜ ํ‰๊ท  ๊ฐ’


 

LIST (๋ฆฌ์ŠคํŠธ)
: ๊ตฌ์„ฑ์š”์†Œ์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅธ ๋ฒกํ„ฐ๋ฅผ ๋‹ด๋Š”๋‹ค
list(key=value), list(value) ํ˜•์‹

โ‘   list(key=value) ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ๊ฐ์ฒด ์ƒ์„ฑ

member = list(name='ํ™๊ธธ๋™', age=35, addr='์„œ์šธ์‹œ', gender='๋‚จ')
$name : $key
#[1] "ํ™๊ธธ๋™" : value


key๋ฅผ ์ด์šฉํ•œ value ์ฐธ์กฐ

member$name #์ถœ๋ ฅ๊ฐ’ "ํ™๊ธธ๋™"
member$addr #์ถœ๋ ฅ๊ฐ’ "์„œ์šธ์‹œ"

* value๊ฐ’ ์ˆ˜์ • : member$age = 45 

โ‘ก key๋ฅผ ์ƒ๋žตํ•œ ๊ฐ์ฒด ์ƒ์„ฑ
member2 = list ('ํ™๊ธธ๋™', 35, '์„œ์šธ์‹œ', '๋‚จ') :  [[n]]๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ key ์ œ๊ณต

member2[[1]] #์ถœ๋ ฅ๊ฐ’ "ํ™๊ธธ๋™"
member2[[3]] #์ถœ๋ ฅ๊ฐ’ "์„œ์šธ์‹œ"






Index (์ƒ‰์ธ) : ๊ฐ’์ด ์ €์žฅ๋œ ์œ„์น˜
๋ณ€์ˆ˜(n) : n์€ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค

 

a = c(1,4,3,7,8,9)
a[-2] #1 3 7 8 9
a[-c(3:5)] #1 4 9

a[n] : n๋ฒˆ์งธ ์ €์žฅ๋œ ๊ฐ’์˜ ์œ„์น˜
a[a:b] : a๋ฒˆ์งธ๋ถ€ํ„ฐ b๋ฒˆ์งธ๊นŒ์ง€์˜ ๊ฐ’

a[b, ] : ์—ด ์ œ์™ธ, b๋ฒˆ์งธ ํ–‰ ์ถœ๋ ฅ

a[ ,c] : ํ–‰ ์ œ์™ธ, c๋ฒˆ์งธ ์—ด ์ถœ๋ ฅ

a[seq(a,b,c)] : a์—์„œ b๊นŒ์ง€ c์”ฉ ๊ฑด๋„ˆ๋›ฐ๋Š” ๊ฐ’
a[c(a,b,c:d)] : a, b, c~d ๊ฐ’ ์ถœ๋ ฅ

a[-b] : b๋ฒˆ์งธ ๊ฐ’์€ ์ œ์™ธํ•˜๊ณ  ์ถœ๋ ฅ
a[-c(a,b,c:d)] : a, b, c~d ๊ฐ’์„ ์ œ์™ธ
* ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ์ง€์ •ํ•  ๋•Œ ๊ผญ cํ•จ์ˆ˜๋กœ ๋ฌถ์–ด์ฃผ์–ด์•ผ ํ•จ 
* ์กฐ๊ฑด์‹(๊ด€๊ณ„์—ฐ์‚ฐ์ž, ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž) ์ด์šฉ ๊ฐ€๋Šฅ

 

gnp = c(2090,2450,960)
gnp

names(gnp) = c("korea", "china", "japan")
gnp
# korea china japan 
# 2090  2450   960 

gnp[1]
gnp["korea"]
# korea 
# 2090 

gnp[c("korea","japan")]
# korea japan 
# 2090   960

"๋ฌธ์ž"๋กœ๋„ ์ƒ‰์ธ ์ถœ๋ ฅ ๊ฐ€๋Šฅ

 





๋ฐ์ดํ„ฐ ์ถœ๋ ฅ ๋ช…๋ น์–ด
โ‘  head() ๋ฐ์ดํ„ฐ ์•ž๋ถ€๋ถ„ ์ถœ๋ ฅ
head(๋ณ€์ˆ˜๋ช…) : ์•ž์—์„œ๋ถ€ํ„ฐ 6ํ–‰๊นŒ์ง€ ์ถœ๋ ฅ
head(๋ณ€์ˆ˜๋ช…, n) : ์•ž์—์„œ๋ถ€ํ„ฐ nํ–‰๊นŒ์ง€ ์ถœ๋ ฅ

โ‘ก tail() ๋ฐ์ดํ„ฐ ๋’ท๋ถ€๋ถ„ ์ถœ๋ ฅ
tail(๋ณ€์ˆ˜๋ช…) : ๋’ค์—์„œ๋ถ€ํ„ฐ 6ํ–‰๊นŒ์ง€ ์ถœ๋ ฅ
tail(๋ณ€์ˆ˜๋ช…, n) : ๋’ค์—์„œ๋ถ€ํ„ฐ nํ–‰๊นŒ์ง€ ์ถœ๋ ฅ

โ‘ข View(๋ณ€์ˆ˜๋ช…) : ์ƒˆ๋กœ์šด ์ฐฝ์—์„œ ์ถœ๋ ฅ

โ‘ฃ dim(๋ณ€์ˆ˜๋ช…) : ํ–‰, ์—ด์˜ ์ˆ˜ ์ถœ๋ ฅ

โ‘ค summary(๋ณ€์ˆ˜๋ช…) ์š”์•ฝ ํ†ต๊ณ„๋Ÿ‰ ์ถœ๋ ฅ
min ์ตœ์†Œ๊ฐ’
max ์ตœ๋Œ€๊ฐ’
mean ํ‰๊ท ๊ฐ’
median ์ค‘๊ฐ„๊ฐ’
1st Qu 25%๊นŒ์ง€์˜ ๊ฐ’
3rd Qu 75%๊นŒ์ง€์˜ ๊ฐ’

โ‘ฅ str() : ๋ฐ์ดํ„ฐ์…‹ ์†์„ฑ ์š”์•ฝ ์ถœ๋ ฅ
chr ๋ฌธ์žํ˜•, num ์ˆซ์žํ˜• (์†Œ์ˆ˜), int ์ˆซ์žํ˜• (์ •์ˆ˜)

 

โ‘ฆ unique(DF๋ช…,[,-n]) : n๋ฒˆ์งธ ์นผ๋Ÿผ ์ œ๊ฑฐํ•œ ๋ณ€์ˆ˜๋ช… ๋ณด๊ธฐ

 

โ‘ง table(DF๋ช… [,"๋ณ€์ˆ˜๋ช…"]) : ๊ฐ ํ–‰์˜ ๊ฐœ์ˆ˜ ์ถœ๋ ฅ

 

โ‘จ colSums(DF๋ช… [-n]) : n๋ฒˆ์งธ ์นผ๋Ÿผ ์ œ์™ธํ•œ ์—ด๋ณ„ ํ•ฉ๊ณ„

colMeans() : ์—ด๋ณ„ ํ‰๊ท 

rowSums() : ํ–‰๋ณ„ ํ•ฉ๊ณ„

rowMeans() : ํ–‰๋ณ„ ํ‰๊ท