공부해 봅시다/R-Project

Array data 살펴 보기 - 삽질편

Anonymous Pathologist 2010. 5. 26. 14:11
  Array 값을 살펴 보다가 의미 있는 차이를 보이는 그룹을 찾는 것도 좋을 것 같아서 방법을 시도해 보았다. 문법을
잘 몰라 한참을 삽질하다가 우여곡절 끝에 대충대충 해결할 수 있었다.


data <- read.table("Book1-1-3.csv", header=T, sep=",")

a <- matrix(nrow=5467, ncol=2)

for (X in 1:5467) {
x <- c(data[X,2],data[X,3],data[X,4],data[X,5], data[X,6],data[X,7],data[X,8],data[X,9])
y <- c(data[X,10],data[X,11])                       
a[X,1] <- X
a[X,2] <- t.test(x,y)$p.value
}

z <- which(a[,2] < 5e-02)
a[z,]


  삽질을 시작하기 전에 우선 5467x2 의 크기를 같은 a 라는 matrix 를 만들어 둔다.
a <- matrix(nrow=5467, ncol=2)

  첫 row 와 column 에는 문자값이 있기 때문에 그것을 제외하면 5467x10 의 값을 가지게 된다. 우선 1~8 column 의 값과 9, 10 column 의 값이 서로 유의한 차이가 있는지 알아보고 싶었다. 그리고 이렇게 구한 t-test 를 5467 번 반복해야 하는 문제도 있었다.
 
  우선 X 를 1 부터 5467 까지 순환하도록 했다.
for (X in 1:5467) { --- }

  그러한 X 값에 따라서 1~8 column 에 포함된 값을 x 라는 항목에 입력을 하고 9, 10 column 값을 y 라는 항목에 입력했다.
x <- c(data[X,2],data[X,3],data[X,4],data[X,5], data[X,6],data[X,7],data[X,8],data[X,9])
y <- c(data[X,10],data[X,11])        

  이러한 x 와 y 를 t-test 를 시행하였을 때의 p.value 만을 알고 싶었고, 이 값과 이 것이 몇 번째 X 값인지를 알아야 할 필요가 있었다.
a[X,1] <- X
a[X,2] <- t.test(x,y)$p.value

  여기까지 한 번에 구해지기 때문에 나중에 a 라고 입력된 값을 보면 다음과 같다.


  이 a 라는 matrix 에서 2 column 에 포함된 값중 p-value 가 0.05 이하인 값을 찾고 싶었기 때문에 다음과 같이 했다. which 를 사용해서 구하기는 하는데 매번 row 값을 출력하는 문제(??)가 있엇다.
z <- which(a[,2] < 5e-02)

  그래서 그냥 이 문제를 안고 살기로 했다. p.value가 0.05 이하인 값을 가지는 row 가 z 로 지정하도록 하고 이 것을 그냥 사용하는게 내가 알고 있는 지식으로는 최고의 결론이었다. ㅡㅡ;;
a[z,]

  유의 수준을 10e-07 까지 올리면 다음과 같이 나온다.

'공부해 봅시다 > R-Project' 카테고리의 다른 글

있어 보이는 heatmap 만들기  (0) 2010.05.31
Array data 살펴 보기 - Simple  (0) 2010.05.26
Green-Black-Red heatmap  (0) 2010.05.24
Heatmap 만들기  (0) 2010.05.16
Chip data 찾아보기..  (0) 2010.05.05