SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
R 시작해보기
이 승우
1.How to Install R?
1. 링크에 접속 ( https://cran.r-project.org/mirrors.html )
2. 미러 목록 확인 ( 쭉 내리셔서 한국 미러 찾으시면 됩니다 )
하여 접속 (ex: http://cran.nexr.com/ )
3. 다운로드 < 다음에 설명 >
4. 그리고 R-Studio 를 다운받아 설치
For Linux (Ubuntu)
버전에 따라 차이점이 있다고 함 (Wily Werewolf (15.10), Vivid Vervet (15.04), Trusty Tahr (14.04; LTS), and Precise
Pangolin (12.04; LTS) )
1. deb https://<미러 주소>/bin/linux/ubuntu willy
2. deb https://<미러 주소>/bin/linux/ubuntu vivid
3. deb https://<미러 주소>/bin/linux/ubuntu trusty
4. deb https://<미러 주소>/bin/linux/ubuntu precise
그리고 sudo apt-get update
그리고
sudo apt-get intall r-base >> sudo apt-get install r-base-dev >>
For Mac OS X
1. R-3.2.3.pkg 파일을 다운로드받아 설치
2. < 링크 > http://cran.nexr.com/bin/macosx/
그리고 윈도우
3. Download R 3.2.3 For Windows 링크를 클릭하여 창에 나오는 설명에 따라 설
치
4. <링크> http://cran.nexr.com/bin/windows/base/
그래도 나는 설치하는게 싫다!
그러면 간단히 이 홈페이지에 접속하면 됩니다!
< 링크 >
http://r-fiddle.org/
ISwR Package 설치
> install.packages(“ISwR”)
[ 미러는 Tokyo Server (japan) 선택 ]
시작해 봅시다!
●
library(ISwR) // ISwR라이브러리를 호출한다.
●
plot(rnorm(1000)) ← 랜덤한 1000개의 숫자를 하나의 공간안에 나타
내기
Exp(-2) ( e^-2 )
rnorm(15) ( 15개의 랜덤한 수를 추출 )
Assignments
X < - 2 ( X=2 )
X + 2 ( Output [ 4 ] )
Weight < - c(60, 72, 57, 90, 95, 72)
> Weight
[1] 60 72 57 90 95 72
[ 여기서 c(…) 는 벡터를 뜻하기 위하여 나타냄 ]
> height < - c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91)
> bmi < - weight/height^2
bmi
[1] 19.59184 22.22222 20.93664 24.93075 31.37799 19.73630
> sum(weight) ( weight 의 총합 구하기 ) (Output 446)
> sum(weight) / length(weight) → length는 갯수를 뜻함 [ Output : 74.33333 ]
> xbar < - sum(weight) / length(weight)
> weight – xbar
[1] -14.333333 -2.333333 -17.333333 15.666667 20.666667 -2.333333
> (weight – xbar) ^ 2 ← 2 제곱하기
[1] 205.444444 5.444444 300.444444 245.444444 427.111111 5.444444
루트(모든 수의 합((몸무게-xbar) ^ 2) / (갯수(몸무게) – 1))
> sqrt(sum((weight - xbar) ^ 2) / (length(weight) -1))
[1] 15.42293
Mean(weight) ← mean() 평균을 구하는 함수
[1] 74.33333
sd(weight) ← sd() 표준편차를 구하는 함수
[1] 15.42293
T-Test ( 검정 함수 )
t.test(bmi, mu=22.5) → bmi 의 평균값이 22.5 인지 검정해보기
alternative hypothesis: true mean is not equal to 22.5 ← 결론은 같지 않다
표 그려보기
●
> plot(height,weight) ← 키와 몸무게 표 그리기
●
> plot(height,weight,pch=2) ← 키와 몸무게 표 그리는데 pch ← 점을 2번째의 심볼로 바꿔보기
표 안에 선 그려보기
> hh ← c(1.65, 1.70, 1.75, 1.80, 1.85, 1.90)
> lines(hh, 22.5 * hh^2 ) ← bmi 는 22.5 일 것이라고 가정
Vectors
Vector have 2 types, character vectors and logical vectors
> c(“Huey”,”Dewey”,”Louie”)
> c('Huey','Dewey','Louie')
[1] "Huey" "Dewey" "Louie"
> c(T, T, F, T)
[1] TRUE TRUE FALSE TRUE
> bmi > 25 ← bmi 중에서 25를 넘는게 있는가?
[1] FALSE FALSE FALSE FALSE TRUE FALSE
●
고양이 함수 ( cat(…) )
위의 Quote 를 없애준다..
> cat(c("Huey","Dewey","Louie","n")) ← 반드시 옆에 n 를 포함할것!
→ Huey Dewey Louie
그러면, c(43, 56, 55, 77, 42, 34, 1, 4, 5) 도...
[1] 43 56 55 77 42 34 1 4 5 로 나온다.
●
그러면.....
> x <- c(red="Huey", blue="Dewey", green="Louie")
> x
red blue green
"Huey" "Dewey" "Louie"
c(FALSE, 3) → 1, 3 이 표시됨 ( TRUE = 0, FALSE = 1 )
c(pi, “abc”) → "3.14159265358979" "abc" 원주율 파이
seq(4, 9) → 4, 5, 6, 7, 8, 9 x 와 y 사이의 수를 표시
seq(4,10,2) → x 와 y의 값 사이에서 2씩 증가하면서 표시
4:9 → 위에 seq 함수와 같은 값을 띄움
oops < - c(7,9,13)
rep(oops, 3) ← replicate(복제) 함 rep(무엇을, 몇번)
[1] 7 9 13 7 9 13 7 9 13
X 를 1에서 12 까지의 수로 설정한 후에
3곱하기 4의 배열 만들기
1에서 12까지의 수로 설정한 후에, nrow는 3을 설정하고,
byrow는 참을 설정한다(?)
Rownames(x)를 문자[1:3] ← ABC로 바꾸기
●
cbind(A, B, C)
●
저 위에 3개의 문자가 위로 위치됨.
●
rbind(A, B, C)
●
저 위의 3개의 문자가 옆으로 위치됨
●
Factor
●
벡터의 특수한 형태로 설문조사의 선택문항 등 카테고리를 저장할 수 있는 벡터인 factor라는 형태가 있다
●
벡터를 숫자로 변환하는 as.numeric() 함수가 있음
●
리스트
intake.pre < - c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
intake.post < - c(3435,5767,4353,5354,6567,2323,4456,2232,2345)
mylist < - list(before=intake.pre,after=intake.post)
mylist$before 하면, 저 위에 .pre 가 출력될 것이고, $after 하면 저 믿에 .post 가 출력될 것임
●
데이터를 프레임 안에 가두기
d ← data.frame(intake.pre,intake.post)
d 를 누르고 엔터를 하면, 각 데이터들이 프레임에 갇혀진 채 잘 나올 것이다
d$intake.pre를 입력하면, d의 intake.pre 의 값
이 나온다.
●
인덱싱
> intake.pre[x] ← x 번째를 보여줌
v ← c(3,5,7)
> intake.pre[v]
[1] 5640 6390 6805
> intake.pre[1:5] // from 1 to 5
[1] 5260 5470 5640 6180 6390
●
Conditional selection
intake.post[intake.pre > 7000] // intake.pre중에서 7000보다 작은것을 표시.
Intake.post[intake.pre > 7000 & intake.pre <= 8000 ] // intake.pre 중에서 7000보다 크고 8000보다 작거
나 같은것을 표시
●
True or False?
Intake.pre > 7000 & intake.pre <= 8000 // intake.pre가 7000보다 크고 8000보다 작거나 같은것을 참과 거
짓을 표시
●
Indexing data frames
d ← data.frame(intake.pre,intake.post)
d[5,1] → 첫번째 항을 나타내줌
d[5, ] → 양쪽 다섯번째 항을 나타냄
d[d$intake.pre>7000]
intake.pre는 7000위인것을 표시해주고, intake.post는 그와 같은 위치에 있는것을 표시 (?)
Sel ← d$intake.pre>7000
sel → 참과 거짓을 나타내 줌
d[sel, ] → intake.pre intake.post 를 표시함 (?)
D[1:2] // 1에서 2까지 표시
head(d) // 첫번째부터 6번째줄까지 보여주는 함수 tail 이라는 함수도 있는데 이건 마지막에 소개
●
Grouped Data and dataframes
> energy // Needs iswr module [library(ISwR)]
> exp.lean <- energy$expend[energy$stature=="lean"]
// exp.lean 은 에너지 항에 $expend 인데 그 조건이 에너지 - stature 항에 $lean 이다
> exp.obese <- energy$expend[energy$stature=="obese"]
// exp.obese 은 에너지 항에 $expend 인데 그 조건이 에너지 - stature 항에 $obese 이다
l ← split(energy$expend, energy$stature) // 이 두개의 항을 나눈다 [ lean , obese ]
●
Lapply & Sapply
●
Lapply는 리스트를 리턴하고, Sapply는 뭔가 리스트를 프레임 안에 가둬서 리턴함
사진 참조
●
Replicate 함수
→ replicate(10,mean(rexp(20)) // 평균값중에서 20의 난수를 생성한것들 중에서 10개를 표시
●
Tapply 함수
테이블을 생성하게 해준다
> tapply(energy$expend, energy$stature, median)
// lean 과 obese 중에서 중앙값을 추출하여 표시
●
Sort 함수 ( 정렬 )
> sort(intake$spot) // 하면 intake$spot 항에 있는 것들을 작은것부터 차례대로 배열한다
●
Order 함수 ( 순서 )
●
> order(intake$post) // 하면 순서가 몇번째인지 알려준다.
●
Ls() 함수는 워크스페이스 안에 뭐가 있는지 알려준다 // 마치 리눅스에서 ls와 rm을 사용하였듯이
rm(height, weight) // height 와 weight 를 삭제한다.
Sink(“myfile”) // myfile과 동기화한다
●
뭔가 알고싶은게 있다면...
help.search(“kendal”) 을 입력하면 된다
●
라이브러리 호출
library(Survival) // 서바이벌 라이브러리 호출
●
attach(what?) // 뭔가를 끌어온다는 뜻? 이다....
EX ) attach(thusen) → $-notation 에서 바로 호출 가능
●
Search() 함수는 search path 에 있는 것들을 표시
●
Detach() 함수는 무언가를 떼어낸다는 함수다.
●
텍스트 파일 읽기
> thusen2 ← read.table(“Directory”, header=T)
●
파일 수정하기
> aq ← edit(airquality) // edit() 함수 사용
●
Fix() 문도 같이 적용

Contenu connexe

Tendances

Learning Node Book, Chapter 5
Learning Node Book, Chapter 5Learning Node Book, Chapter 5
Learning Node Book, Chapter 5
Ji Hun Kim
 

Tendances (20)

세일즈포스 서울 어드민 그룹 Trigger 연재 강의 (반복문/조건문)
세일즈포스 서울 어드민 그룹 Trigger 연재 강의 (반복문/조건문)세일즈포스 서울 어드민 그룹 Trigger 연재 강의 (반복문/조건문)
세일즈포스 서울 어드민 그룹 Trigger 연재 강의 (반복문/조건문)
 
R 스터디 세번째
R 스터디 세번째R 스터디 세번째
R 스터디 세번째
 
R 스터디 두번째
R 스터디 두번째R 스터디 두번째
R 스터디 두번째
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조
 
Example
ExampleExample
Example
 
Boost pp 20091102_서진택
Boost pp 20091102_서진택Boost pp 20091102_서진택
Boost pp 20091102_서진택
 
R 스터디 네번째
R 스터디 네번째R 스터디 네번째
R 스터디 네번째
 
3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택
 
MySQL delete.update
MySQL delete.updateMySQL delete.update
MySQL delete.update
 
Data Structures
Data StructuresData Structures
Data Structures
 
MySQL JOIN
MySQL JOINMySQL JOIN
MySQL JOIN
 
Binary Search
Binary SearchBinary Search
Binary Search
 
Learning Node Book, Chapter 5
Learning Node Book, Chapter 5Learning Node Book, Chapter 5
Learning Node Book, Chapter 5
 
Javascript - Array
Javascript - ArrayJavascript - Array
Javascript - Array
 
RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3RPG Maker와 Ruby로 코딩 시작하기 Day 3
RPG Maker와 Ruby로 코딩 시작하기 Day 3
 
20111025 Excel의 VBA, 매크로. 그리고 파이썬으로 함께하는 반복작업
20111025 Excel의 VBA, 매크로. 그리고 파이썬으로 함께하는 반복작업20111025 Excel의 VBA, 매크로. 그리고 파이썬으로 함께하는 반복작업
20111025 Excel의 VBA, 매크로. 그리고 파이썬으로 함께하는 반복작업
 
R intro
R introR intro
R intro
 
파이썬 데이터베이스 연결 1탄
파이썬 데이터베이스 연결 1탄파이썬 데이터베이스 연결 1탄
파이썬 데이터베이스 연결 1탄
 
skku cp2 w4
skku cp2 w4skku cp2 w4
skku cp2 w4
 
Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706
 

Similaire à R 시작해보기

Project#2말의여행 Hwp
Project#2말의여행 HwpProject#2말의여행 Hwp
Project#2말의여행 Hwp
Kimjeongmoo
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
Yong Joon Moon
 
Programming java day2
Programming java day2Programming java day2
Programming java day2
Jaehoonyam
 

Similaire à R 시작해보기 (20)

R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R Basics
 
RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수
RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수
RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수
 
자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장
 
Python if loop-function
Python if loop-functionPython if loop-function
Python if loop-function
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오
 
Haskell study 5
Haskell study 5Haskell study 5
Haskell study 5
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법
 
Scalability
ScalabilityScalability
Scalability
 
Scala, Scalability
Scala, ScalabilityScala, Scalability
Scala, Scalability
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차
 
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
 
Java.next
Java.nextJava.next
Java.next
 
Clojure Monad
Clojure MonadClojure Monad
Clojure Monad
 
Project#2말의여행 Hwp
Project#2말의여행 HwpProject#2말의여행 Hwp
Project#2말의여행 Hwp
 
Scala
ScalaScala
Scala
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
 
Programming java day2
Programming java day2Programming java day2
Programming java day2
 
Seed2016 - 개미수열 한주영 (annotated)
Seed2016 - 개미수열 한주영 (annotated)Seed2016 - 개미수열 한주영 (annotated)
Seed2016 - 개미수열 한주영 (annotated)
 
Macro & compilation
Macro & compilationMacro & compilation
Macro & compilation
 

Plus de SEUNGWOO LEE (6)

How To Setup NVIDIA CUDA Drvier on Ubuntu
How To Setup NVIDIA CUDA Drvier on UbuntuHow To Setup NVIDIA CUDA Drvier on Ubuntu
How To Setup NVIDIA CUDA Drvier on Ubuntu
 
구글 지노믹스에 대하여
구글 지노믹스에 대하여구글 지노믹스에 대하여
구글 지노믹스에 대하여
 
아마존과 도커를 사용하여 환경 구성해보기
아마존과 도커를 사용하여 환경 구성해보기아마존과 도커를 사용하여 환경 구성해보기
아마존과 도커를 사용하여 환경 구성해보기
 
R 과 텐서플로우를 연동하는 방법
R 과 텐서플로우를 연동하는 방법R 과 텐서플로우를 연동하는 방법
R 과 텐서플로우를 연동하는 방법
 
간단한 몬테카를로 함수에 대한 설명
간단한 몬테카를로 함수에 대한 설명간단한 몬테카를로 함수에 대한 설명
간단한 몬테카를로 함수에 대한 설명
 
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기 Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
Tensorflow로 플로이드 클라우드에서 합성곱 신경망 (CNN) 구현해보기
 

R 시작해보기

  • 2. 1.How to Install R? 1. 링크에 접속 ( https://cran.r-project.org/mirrors.html ) 2. 미러 목록 확인 ( 쭉 내리셔서 한국 미러 찾으시면 됩니다 ) 하여 접속 (ex: http://cran.nexr.com/ ) 3. 다운로드 < 다음에 설명 > 4. 그리고 R-Studio 를 다운받아 설치
  • 3. For Linux (Ubuntu) 버전에 따라 차이점이 있다고 함 (Wily Werewolf (15.10), Vivid Vervet (15.04), Trusty Tahr (14.04; LTS), and Precise Pangolin (12.04; LTS) ) 1. deb https://<미러 주소>/bin/linux/ubuntu willy 2. deb https://<미러 주소>/bin/linux/ubuntu vivid 3. deb https://<미러 주소>/bin/linux/ubuntu trusty 4. deb https://<미러 주소>/bin/linux/ubuntu precise 그리고 sudo apt-get update 그리고 sudo apt-get intall r-base >> sudo apt-get install r-base-dev >>
  • 4. For Mac OS X 1. R-3.2.3.pkg 파일을 다운로드받아 설치 2. < 링크 > http://cran.nexr.com/bin/macosx/ 그리고 윈도우 3. Download R 3.2.3 For Windows 링크를 클릭하여 창에 나오는 설명에 따라 설 치 4. <링크> http://cran.nexr.com/bin/windows/base/
  • 5. 그래도 나는 설치하는게 싫다! 그러면 간단히 이 홈페이지에 접속하면 됩니다! < 링크 > http://r-fiddle.org/
  • 6. ISwR Package 설치 > install.packages(“ISwR”) [ 미러는 Tokyo Server (japan) 선택 ]
  • 7. 시작해 봅시다! ● library(ISwR) // ISwR라이브러리를 호출한다. ● plot(rnorm(1000)) ← 랜덤한 1000개의 숫자를 하나의 공간안에 나타 내기 Exp(-2) ( e^-2 ) rnorm(15) ( 15개의 랜덤한 수를 추출 )
  • 8. Assignments X < - 2 ( X=2 ) X + 2 ( Output [ 4 ] ) Weight < - c(60, 72, 57, 90, 95, 72) > Weight [1] 60 72 57 90 95 72 [ 여기서 c(…) 는 벡터를 뜻하기 위하여 나타냄 ] > height < - c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91) > bmi < - weight/height^2 bmi [1] 19.59184 22.22222 20.93664 24.93075 31.37799 19.73630
  • 9. > sum(weight) ( weight 의 총합 구하기 ) (Output 446) > sum(weight) / length(weight) → length는 갯수를 뜻함 [ Output : 74.33333 ] > xbar < - sum(weight) / length(weight) > weight – xbar [1] -14.333333 -2.333333 -17.333333 15.666667 20.666667 -2.333333 > (weight – xbar) ^ 2 ← 2 제곱하기 [1] 205.444444 5.444444 300.444444 245.444444 427.111111 5.444444 루트(모든 수의 합((몸무게-xbar) ^ 2) / (갯수(몸무게) – 1)) > sqrt(sum((weight - xbar) ^ 2) / (length(weight) -1)) [1] 15.42293
  • 10. Mean(weight) ← mean() 평균을 구하는 함수 [1] 74.33333 sd(weight) ← sd() 표준편차를 구하는 함수 [1] 15.42293 T-Test ( 검정 함수 ) t.test(bmi, mu=22.5) → bmi 의 평균값이 22.5 인지 검정해보기 alternative hypothesis: true mean is not equal to 22.5 ← 결론은 같지 않다
  • 11. 표 그려보기 ● > plot(height,weight) ← 키와 몸무게 표 그리기 ● > plot(height,weight,pch=2) ← 키와 몸무게 표 그리는데 pch ← 점을 2번째의 심볼로 바꿔보기
  • 12. 표 안에 선 그려보기 > hh ← c(1.65, 1.70, 1.75, 1.80, 1.85, 1.90) > lines(hh, 22.5 * hh^2 ) ← bmi 는 22.5 일 것이라고 가정
  • 13. Vectors Vector have 2 types, character vectors and logical vectors > c(“Huey”,”Dewey”,”Louie”) > c('Huey','Dewey','Louie') [1] "Huey" "Dewey" "Louie" > c(T, T, F, T) [1] TRUE TRUE FALSE TRUE > bmi > 25 ← bmi 중에서 25를 넘는게 있는가? [1] FALSE FALSE FALSE FALSE TRUE FALSE
  • 14. ● 고양이 함수 ( cat(…) ) 위의 Quote 를 없애준다.. > cat(c("Huey","Dewey","Louie","n")) ← 반드시 옆에 n 를 포함할것! → Huey Dewey Louie 그러면, c(43, 56, 55, 77, 42, 34, 1, 4, 5) 도... [1] 43 56 55 77 42 34 1 4 5 로 나온다. ● 그러면..... > x <- c(red="Huey", blue="Dewey", green="Louie") > x red blue green "Huey" "Dewey" "Louie"
  • 15. c(FALSE, 3) → 1, 3 이 표시됨 ( TRUE = 0, FALSE = 1 ) c(pi, “abc”) → "3.14159265358979" "abc" 원주율 파이 seq(4, 9) → 4, 5, 6, 7, 8, 9 x 와 y 사이의 수를 표시 seq(4,10,2) → x 와 y의 값 사이에서 2씩 증가하면서 표시 4:9 → 위에 seq 함수와 같은 값을 띄움 oops < - c(7,9,13) rep(oops, 3) ← replicate(복제) 함 rep(무엇을, 몇번) [1] 7 9 13 7 9 13 7 9 13
  • 16. X 를 1에서 12 까지의 수로 설정한 후에 3곱하기 4의 배열 만들기 1에서 12까지의 수로 설정한 후에, nrow는 3을 설정하고, byrow는 참을 설정한다(?) Rownames(x)를 문자[1:3] ← ABC로 바꾸기
  • 17. ● cbind(A, B, C) ● 저 위에 3개의 문자가 위로 위치됨. ● rbind(A, B, C) ● 저 위의 3개의 문자가 옆으로 위치됨 ● Factor ● 벡터의 특수한 형태로 설문조사의 선택문항 등 카테고리를 저장할 수 있는 벡터인 factor라는 형태가 있다 ● 벡터를 숫자로 변환하는 as.numeric() 함수가 있음
  • 18. ● 리스트 intake.pre < - c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 intake.post < - c(3435,5767,4353,5354,6567,2323,4456,2232,2345) mylist < - list(before=intake.pre,after=intake.post) mylist$before 하면, 저 위에 .pre 가 출력될 것이고, $after 하면 저 믿에 .post 가 출력될 것임 ● 데이터를 프레임 안에 가두기 d ← data.frame(intake.pre,intake.post) d 를 누르고 엔터를 하면, 각 데이터들이 프레임에 갇혀진 채 잘 나올 것이다 d$intake.pre를 입력하면, d의 intake.pre 의 값 이 나온다.
  • 19. ● 인덱싱 > intake.pre[x] ← x 번째를 보여줌 v ← c(3,5,7) > intake.pre[v] [1] 5640 6390 6805 > intake.pre[1:5] // from 1 to 5 [1] 5260 5470 5640 6180 6390 ● Conditional selection intake.post[intake.pre > 7000] // intake.pre중에서 7000보다 작은것을 표시. Intake.post[intake.pre > 7000 & intake.pre <= 8000 ] // intake.pre 중에서 7000보다 크고 8000보다 작거 나 같은것을 표시
  • 20. ● True or False? Intake.pre > 7000 & intake.pre <= 8000 // intake.pre가 7000보다 크고 8000보다 작거나 같은것을 참과 거 짓을 표시 ● Indexing data frames d ← data.frame(intake.pre,intake.post) d[5,1] → 첫번째 항을 나타내줌 d[5, ] → 양쪽 다섯번째 항을 나타냄 d[d$intake.pre>7000] intake.pre는 7000위인것을 표시해주고, intake.post는 그와 같은 위치에 있는것을 표시 (?) Sel ← d$intake.pre>7000 sel → 참과 거짓을 나타내 줌 d[sel, ] → intake.pre intake.post 를 표시함 (?)
  • 21. D[1:2] // 1에서 2까지 표시 head(d) // 첫번째부터 6번째줄까지 보여주는 함수 tail 이라는 함수도 있는데 이건 마지막에 소개 ● Grouped Data and dataframes > energy // Needs iswr module [library(ISwR)] > exp.lean <- energy$expend[energy$stature=="lean"] // exp.lean 은 에너지 항에 $expend 인데 그 조건이 에너지 - stature 항에 $lean 이다 > exp.obese <- energy$expend[energy$stature=="obese"] // exp.obese 은 에너지 항에 $expend 인데 그 조건이 에너지 - stature 항에 $obese 이다 l ← split(energy$expend, energy$stature) // 이 두개의 항을 나눈다 [ lean , obese ] ● Lapply & Sapply
  • 22. ● Lapply는 리스트를 리턴하고, Sapply는 뭔가 리스트를 프레임 안에 가둬서 리턴함 사진 참조 ● Replicate 함수 → replicate(10,mean(rexp(20)) // 평균값중에서 20의 난수를 생성한것들 중에서 10개를 표시 ● Tapply 함수 테이블을 생성하게 해준다 > tapply(energy$expend, energy$stature, median) // lean 과 obese 중에서 중앙값을 추출하여 표시 ● Sort 함수 ( 정렬 ) > sort(intake$spot) // 하면 intake$spot 항에 있는 것들을 작은것부터 차례대로 배열한다 ● Order 함수 ( 순서 ) ● > order(intake$post) // 하면 순서가 몇번째인지 알려준다.
  • 23. ● Ls() 함수는 워크스페이스 안에 뭐가 있는지 알려준다 // 마치 리눅스에서 ls와 rm을 사용하였듯이 rm(height, weight) // height 와 weight 를 삭제한다. Sink(“myfile”) // myfile과 동기화한다 ● 뭔가 알고싶은게 있다면... help.search(“kendal”) 을 입력하면 된다 ● 라이브러리 호출 library(Survival) // 서바이벌 라이브러리 호출 ● attach(what?) // 뭔가를 끌어온다는 뜻? 이다.... EX ) attach(thusen) → $-notation 에서 바로 호출 가능 ● Search() 함수는 search path 에 있는 것들을 표시 ● Detach() 함수는 무언가를 떼어낸다는 함수다.
  • 24. ● 텍스트 파일 읽기 > thusen2 ← read.table(“Directory”, header=T) ● 파일 수정하기 > aq ← edit(airquality) // edit() 함수 사용 ● Fix() 문도 같이 적용