2012-12-04 2 views
1

나는 id 필드와 세 가지 다른 관련이없는 p 값을 가진 data.frame을 가지고 있습니다. 나는 각 칸에 벤야 미니 호프 버그 중심점을 적용하고자한다. 나는 p.adjust 함수로 p.adjust(data[,2], "BH")으로 일해 왔지만 수정을 적용하기 전에 각 열을 정렬해야하므로 문제가 발생합니다. 그 후에 ID 정보가 손실됩니다.data.frame의 서로 다른 열에 BH 다중 수정

id p1 p2 p3 
1 ENSG00000179094 1.000000e+00 1.000000e+00 1.000000e+00 
2 ENSG00000164306 1.000000e+00 1.000000e+00 1.000000e+00 
3 ENSG00000147180 1.000000e+00 8.778847e-02 1.000000e+00 
4 ENSG00000172932 4.370119e-01 1.766703e-04 1.000000e+00 
5 ENSG00000137252 1.000000e+00 2.562124e-02 1.000000e+00 
6 ENSG00000144644 1.654108e-02 1.000000e+00 1.000000e+00 
7 ENSG00000197273 3.316301e-01 5.341301e-01 1.000000e+00 
8 ENSG00000169221 1.000000e+00 1.000000e+00 1.000000e+00 
9 ENSG00000108309 8.689368e-01 2.350522e-03 1.000000e+00 
10 ENSG00000172382 1.000000e+00 9.028471e-01 2.697276e-02 
11 ENSG00000099937 1.000000e+00 1.000000e+00 9.988716e-01 
12 ENSG00000259431 1.000000e+00 1.000000e+00 7.268023e-01 
... 

이 아이디의의 정보를 잃지 않고이 작업을 수행 할 수있는 가장 쉬운 방법 또는 패키지가 있습니까 : 내 데이터는 같다?

+0

당신이 열을 정렬 할 필요가 있다고 생각 왜 나에게 불분명하다. 필자는 도움이 필요하다는 것을 나타내는'p.adjust'에 대한 도움말 페이지에서 아무것도 볼 수 없습니다. –

+0

http://stat.ethz.ch/R-manual/R-devel/library/stats/html/p.adjust.html 예제에서는 정렬을 만듭니다. 또한 BH 방법론은 나는 알고있다 – biojl

답변

2

numcolwise을 사용하면 data.frame의 숫자 열에 만 함수를 적용 할 수 있습니다.

library(plyr) 
cbind(dat$id,numcolwise(p.adjust)(dat)) 
      dat$id  p1   p2  p3 
1 ENSG00000179094 1.000000 1.000000000 1.0000000 
2 ENSG00000164306 1.000000 1.000000000 1.0000000 
3 ENSG00000147180 1.000000 0.790096230 1.0000000 
4 ENSG00000172932 1.000000 0.002120044 1.0000000 
5 ENSG00000137252 1.000000 0.256212400 1.0000000 
6 ENSG00000144644 0.198493 1.000000000 1.0000000 
7 ENSG00000197273 1.000000 1.000000000 1.0000000 
8 ENSG00000169221 1.000000 1.000000000 1.0000000 
9 ENSG00000108309 1.000000 0.025855742 1.0000000 
10 ENSG00000172382 1.000000 1.000000000 0.3236731 
11 ENSG00000099937 1.000000 1.000000000 1.0000000 
12 ENSG00000259431 1.000000 1.000000000 1.0000000 

다른 인수를 사용하려면

cbind(dat$id,numcolwise(p.adjust)(dat, method = 'bonferroni', n = 20)) 
+0

안녕하세요, 나는 그것이 무엇을하는지 이해하려고 노력하고 있습니다. 분명히 numcolwise는 모든 숫자 열에 함수를 적용합니까? 그런 다음 p.adjust는 기본적으로 BH 방법을 사용합니까? 그리고 마지막으로 우리가 p.adjust 전에 열을 정렬 할 필요가 없다는 것이 어떻게 자동으로 수행되는 것입니까? 감사합니다 – biojl

+0

예 p.adjust BH metho를 기본으로 사용하여 다른 매개 변수에 대한 방법을 보려면 내 대답을 업데이트하십시오. – agstudy

+0

고마워, 그것은 놀라운 한 - 라이너. 플라이어는 대단해. – biojl

1

왜 :

dat2 <- dat # only needed if you want to protect original data. 
dat2[2:4] <- lapply(dat2[2:4], p.adjust, method="BH") 
+0

이 방법과 agstudy에서 자세히 설명한 값을 사용하여 다른 값을 찾습니다. BH가 기본값이 아닐 수도 있습니까? – biojl

+0

두 번 확인하고 p.adjust 기본 방법으로 BH를 사용하지 마십시오. – biojl

+0

그것은 기본값이 아니기 때문에 ... 나는 그것을 방법으로 지정했습니다. 그것은 yopu가 요구 한 것입니다, 그렇죠? –

관련 문제