R, Command line interface Ⅱ Start.
BioinformaticsAndMe
파트 1 에 이어서,
R 의 기본 명령어와 Component 를 다뤄보자.
8. 매트릭스에 row/column 추가하기
#Column 추가하기
> mat = matrix(1:20, ncol=4, nrow=5)
> cbind(mat, c(21:25) )
[,1] [,2] [,3] [,4] [,5]
[1,] 1 6 11 16 21
[2,] 2 7 12 17 22
[3,] 3 8 13 18 23
[4,] 4 9 14 19 24
[5,] 5 10 15 20 25
#Row 추가하기
> mat = matrix(1:20, ncol=4, nrow=5)
> rbind(mat, c(26:29) )
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
[6,] 26 27 28 29
9. 벡터에 이름 붙이기
> x <- c(1,2,3,4,5)
> names(x)
NULL
> names(x) <- c("A","B","C","D","E")
> x
A B C D E
1 2 3 4 5
> x['C']
C
3
> names(x)
[1] "A" "B" "C" "D" "E"
10. 매트릭스에 이름 붙이기
> CountTable <- matrix( c(189, 10845, 104, 10933) , nrow=2, byrow=TRUE )
> CountTable
[,1] [,2]
[1,] 189 10845
[2,] 104 10933
> rownames(CountTable) <- c("Placebo", "Aspirin")
> colnames(CountTable) <- c("No heart attack", "Heart attack")
> CountTable
No heart attack Heart attack
Placebo 189 10845
Aspirin 104 10933
> CountTable["Placebo",]
No heart attack Heart attack
189 10845
> colnames(CountTable)
[1] "No heart attack" "Heart attack"
11. 범주형 변수 (factor)
#factor는 R에서 제공하는 categorical variable(범주형 변수)로, 여러개의 level로 구성된다. 혈액형이라는 범주형 변수가 존재할 때, A,B,AB,O 라는 level을 가지게 된다.
> BloodType <- c("A","B","AB","O","O","A","A","O","B","B")
> summary(BloodType)
Length Class Mode
10 character character
#위에서 정의한 BloodType이라는 vector를 factor로 형 변환.
> BloodType <- c("A","B","AB","O","O","A","A","O","B","B")
> BloodType <- factor(BloodType)
> BloodType
[1] A B AB O O A A O B B
Levels: A AB B O
#factor() 함수를 사용한 이후, BloodType은 A,AB,B,O라는 4가지 level을 가진 factor형 변수가 되고, 그것은 알파벳 순서로 정렬이 되어 categorical 하게 저장된다.
> summary(BloodType)
A AB B O
3 1 3 3
#성별 예시
> gender <- c(1,1,2,2,1,2,2,2,1,2)
> summary(gender)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1.0 1.0 2.0 1.6 2.0 2.0
> gender <- factor(gender)
> gender
[1] 1 1 2 2 1 2 2 2 1 2
Levels: 1 2
> class(gender)
[1] "factor"
#1과 2의 level을 가지는 factor 형으로 변환된 것을 볼 수 있음. 하지만 1과 2가 무엇을 의미하는지 파악하기 불가능하기 때문에, 이름을 가지는 label을 구성해보자.
> gender <- c(1,1,2,2,1,2,2,2,1,2)
> gender <- factor(gender, levels=c(1,2), labels=c("male","female"))
> gender
[1] male male female female male female female female male female
Levels: male female
12. 데이터 프레임 (data frame)
#벡터 데이터로 데이터프레임을 만드는 것은 data.frame()함수를 이용한다.
> head <- c("seoul", "tokyo", "paris")
> values <- 1:3
> sample <- data.frame(head, values)
#결과
head values
1 seoul 1
2 tokyo 2
3 paris 3
#데이터프레임에 열 추가하기
> vec <- c(“100”, “80”, “30”) # 새로운 벡터데이터 생성하기
> sample$newcol <- vec #sample 데이터프레임에 벡터데이터(vec)추가
#데이터 열이름 바꾸기
방법1.
>names(sample)
# 결과
[1] "head" "values"
방법2.
>names(sample)[names(sample) == "city"] <- c("C_NAME")
>names(sample) #열이름 출력
# 결과
[1] "C_NAME" "count"
방법3.
>names(sample)[2] <- c("C_VLAUE")
>names(sample)#열이름 출력
# 결과
[1] "C_NAME" "C_VALUE"
#데이터 정렬
> data(mtcars)
> head(mtcars,10)
> order(mtcars$mpg)
> mtcars=mtcars[order(mtcars$mpg),]
> head(mtcars)
13. 데이터프레임 예제
#변속기가 자동(am == 0)이고 & 실린더가 4개, 6개 (cyl == c(4, 6)) 인 자동차들의 연비(mpg) 평균(mean())는?
> attach(mtcars)
# 변속기가 자동이고 & 실린더가 4개, 6개인 자동차의 연비, 실린더, 자동/수동 변수 선별
> mtcars_mart_0 <- mtcars[ which( am == 0 & cyl == c(4, 6)), c("mpg", "cyl", "am")]
> mtcars_mart_0
mpg cyl am
Hornet 4 Drive 21.4 6 0
Valiant 18.1 6 0
Merc 230 22.8 4 0
Merc 280 19.2 6 0
Toyota Corona 21.5 4 0
> mean(mtcars_mart_0$mpg)
[1] 20.6
R, Command line interface Ⅱ End.
BioinformaticsAndMe