2012-03-16 2 views
0

StackOverflow 포럼의 Permute 패키지를 발견했습니다. 내 프로젝트의 일부로 순열을 수행하려고합니다. multtest에서 mt.sample.rawp()을 사용하려고했습니다. 하지만 필자가 요구하는 몇 가지 사양이 있는데, 나는이 기능과 관련이 없다. 나는 그것을 위해 당신의 패키지를 사용할 수 있는지 알고 싶습니다. 나는 나의 문제를 설명 할 것이다. 내 R cmd 지식이 약한 경우 R에 사과합니다.R의 영구 패키지

데이터 세트가 있고 클래스 레이블 (CL)에 순열을 수행하고 원시 p- 값을 계산하고 싶습니다. 나는 내 프로젝트에 필요한 수정 된 t- 테스트 내 자신의 t- 테스트 있습니다. 이 수정 된 t- 테스트을 사용하여 순열을 수행 할 수 있어야합니다.

또한 패키지를 사용하여 해결 한 질문 중 하나와 비슷합니다. 나는 2 개의 클래스 레이블을 가지고 있지만 순열을 할 때, 나는 내 데이터의 각 샘플에 대한 색인 값을 가지므로 순열은 데이터의 각 행에 대해 수행되어서는 안되며 데이터의 각 색인에 대해 클래스 레이블 (CL)을 치환해야한다.

내 데이터의 예를 들면 :

Sample 1 2 3 4 5 6 7 8 
Index 1 1 2 2 3 3 4 4 
CL  0 0 1 1 1 1 0 0 

여기 매트릭스 형식으로 표시 할 수 없습니다입니다. 각 표제는 내 데이터 세트의 열입니다. 사용할 수있는 모든 코드 또는 참조 코드. 시간과 도움에 미리 감사드립니다.

+1

누구와 통화하고 있습니까? –

+0

나에게 나타납니다. 나는 지금 당장 일하는 일에 바쁘다. 그러나 누군가 나에게 그렇게하지 않는다면 나는 나중에 또는 내일이나 내일 (영국 시간)에 관해 생각할 것이다. –

답변

2
require(permute) ## load package 

## data 
dat <- data.frame(Sample = 1:8, Index = rep(1:4, each = 2), 
        CL = c(0,0,1,1,1,1,0,0)) 

이제는 순열이 계층화되어야하는 방법을 정의하는 제어 개체가 필요합니다. 그 사용 permControl()의 경우 :

> ctrl <- with(dat, permControl(strata = Index)) 
> ctrl 

No. of permutations: 199 

**** STRATA **** 
Permutations are stratified within: Index 
Strata unpermuted 

**** SAMPLES **** 
Permutation type: free 
Mirrored permutations for Samples?: No 
Use same permutation within strata?: No 

다음으로 우리가 순열을 생성, 나는 여기 순열은 행 인덱스

> set.seed(10) 
> perms <- shuffleSet(nrow(dat), nset = 10, control = ctrl) 
> perms 
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] 
[1,] 2 1 3 4 5 6 7 8 
[2,] 2 1 4 3 5 6 7 8 
[3,] 1 2 3 4 6 5 8 7 
[4,] 1 2 4 3 6 5 8 7 
[5,] 1 2 3 4 6 5 8 7 
[6,] 1 2 3 4 5 6 7 8 
[7,] 1 2 3 4 5 6 7 8 
[8,] 1 2 3 4 5 6 7 8 
[9,] 2 1 4 3 5 6 7 8 
[10,] 2 1 3 4 5 6 7 8 

perms의 행의 10 순열의 세트를 생성하고 열은 행 참조 원래 데이터의

당신이 바로 그런 당신이 당신의 순열 테스트를 할 루프를 사용하는 경우와 같이 한 번에 하나의 순열을 원하는 경우, 예를 들어 shuffle() 대신 shuffleSet()를 사용

> set.seed(10) 
> perm <- shuffle(nrow(dat), control = ctrl) 
> perm 
[1] 2 1 3 4 5 6 7 8 

셔플 세트를 사용하려면 perms의 색인은 dat의 색인 :

> dat[perms[1, ], ] 
    Sample Index CL 
1  1  1 0 
2  2  1 0 
4  4  2 1 
3  3  2 1 
5  5  3 1 
6  6  3 1 
8  8  4 0 
7  7  4 0 
> dat[perms[2, ], ] 
    Sample Index CL 
1  1  1 0 
2  2  1 0 
3  3  2 1 
4  4  2 1 
5  5  3 1 
6  6  3 1 
7  7  4 0 
8  8  4 0 
> dat[perms[3, ], ] 
    Sample Index CL 
2  2  1 0 
1  1  1 0 
3  3  2 1 
4  4  2 1 
6  6  3 1 
5  5  3 1 
7  7  4 0 
8  8  4 0 
+0

@ Andrie- 데이터를 매트릭스 형식으로 얻을 수 있도록 도와 주신 것에 대해 감사드립니다. – user1256387

+0

패키지를 보내 주셔서 감사합니다. 샘플에 미리 할당 된 인덱스를 변경하지 않고 샘플 행을 샘플링합니다. 하지만이 Ctrl 키를 사용하면 샘플의 클래스 레이블을 바꿀 수 있어야합니다. 기본적으로 샘플과 클래스 레이블 간의 관계를 끊습니다. – user1256387

+0

당신은 "... 순열은 데이터의 각 행에 대해 수행되어서는 안되며 데이터의 각 색인에 대해 클래스 레이블 (CL)을 대신 지정해야합니다". 나는 여러분이 클래스 레이블 ('CL')을'Index' 레벨 내에서 바꾸고 자한다는 것을 의미했습니다. 당신이 뭔가 다른 것을 원한다면 아마도 설명 할 수 있을까요? –