11. R์ ๋ฆฌ (๊ธฐ๋ณธ์ฝ์, ํจ์, ๋ฐ์ดํฐ์ข ๋ฅ)
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() : ํ๋ณ ํ๊ท