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']
> 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
> detach(mtcars)



R, Command line interface  End.

BioinformaticsAndMe

'R' 카테고리의 다른 글

막대그래프 (Barplot)  (0) 2018.08.06
R, 결측치 처리 (Missing value, NA)  (0) 2018.07.26
R, Command line interface Ⅰ  (0) 2018.07.16
R, RStudio 설치  (0) 2018.07.14
Permutation test (순열검정법)  (7) 2018.07.08

+ Recent posts