지난 2 일 동안이 오류를 디버깅하려고 시도했지만 스택 오버플로에서 발견 된 모든 가능한 수정 사항을 적용했지만 여전히 다양한 오류가 발생했습니다. 더 이상 내가 무엇을 할 수 있는지 안다.R : apply() 사용과 다른 오류가 발생했습니다.
dat은 멀티 테스트 라이브러리의 golub 데이터 세트에서 가져온 3051 행 38 열의 데이터 프레임입니다. DAT의 샘플 :
> dat[1:5, 1:5]
V1 V2 V3 V4 V5
g1 -1.45769 -1.39420 -1.42779 -1.40715 -1.42668
g2 -0.75161 -1.26278 -0.09052 -0.99596 -1.24245
g3 0.45695 -0.09654 0.90325 -0.07194 0.03232
g4 3.13533 0.21415 2.08754 2.23467 0.93811
g5 2.76569 -1.27045 1.60433 1.53182 1.63728
나는 정의이 기능이 있습니다
> wilcox.func <- function(x, s1, s2) {
+ x1 <- x[s1]
+ x2 <- x[s2]
+ x1 <- as.numeric(x1)
+ x2 <- as.numeric(x2)
+ w.out <- wilcox.test(x1, x2, exact=F, alternative="two.sided", correct=T)
+ out <- as.numeric(w.out$statistic)
+ return(out) }
을하고 나는 그것을 적용하려고 : 내가 원하는
> apply(dat, 1, wilcox.func, s1=c(1:27), s2=c(28:38))
실행에 wilcox.test () 함수는 처음 27 개의 열을 x로하고 나머지 열은 y (golub.cl을 기반으로 함)로 사용합니다. 그러나, 나는이 오류를 얻을 : 0 만의 혼합 될 수있다 정확한 = F를 제거
Error in wilcox.test(x1, x2, exact = F, alternative = "two.sided", correct = T) : unused arguments (exact = F, alternative = "two.sided", correct = T)
, 대체 = "two.sided을"올바른는 = T 나에게 X [S1]에서 새로운 오류 오류를 제공합니다 부의 첨자는입니다. (wilcox.test에서 제거 하지은 "사용하지 않는 인자"와) 동일한 코드 라인을 실행 차원의 잘못된 번호 :
는 충분히 재미있게 어떤 점에서 나는 또한 X의 [S1을] 오류 오류가 발생했습니다 ,하지만 그것은 2 일 전이었고 나는 그것을 다시 재현 할 수 없었습니다.
나는 또한 lapply()와 mapply()를 시도했지만 사용하지 않은 인수 오류와 같은 오류가 발생합니다.
내가 얻으려고하는 : wilcox.test() 올바르게 문제를 이해하는 경우 x 벡터 열 1 28 및 y 벡터 열 29로 구성된 각 행에 적용해야합니다. 38.
이것이 단순히 간단한 문제인 경우 사과드립니다. 나는 그것이 무엇인지 모르겠다. (
편집 : R을 재시작 한 후 지금은 (파르페의 코드와 마찬가지로) 작동한다 ... 죄송합니다. 아마도이 게시물을 게시하기 전에 먼저 시도했을 것입니다. ..
하세요'dput을()'귀하의 데이터. 자세한 정보는'r' 태그 위로 포인터를 가져 가십시오. –
@ Hack-R 미안 해요, 내 전나무예요. R에 관한 시간 게시. 데이터를 어떻게 처리합니까? 내 게시물에 'library (multtest)' 'dput (data (golub))' 이 있어야한다는 뜻입니까? – Melissa
나는 당신이하려는 것을 얻을 수 있을지 확신하지 못합니다. 모든 열 조합에 대한 별도의 테스트, 즉 28x9 = 252 테스트를 의미합니까? – Joe