저는 R을 처음 사용합니다. R 아래에서 행렬의 모든 행에 Wilcoxon 테스트를 적용하는 방법에 대한 빠른 질문이 있습니다. 예를 들어, 가장 간단한 행렬로. Wilcoxon 테스트를 for 루프, 두 그룹의 열, 그룹으로 1에서 5까지, 다른 그룹으로 6에서 10으로 모든 행에 적용하려고합니다. 그리고 P- 값을 파일에 열로 저장합니다. 두 개의 for 루프를 작성했지만 실패했습니다. 마지막에 for 루프와 오류 메시지를 넣었습니다. 정말 고맙습니다.
mymatrix
[,1][,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 11 21 31 41 51 61 71 81 91
[2,] 2 12 22 32 42 52 62 72 82 92
[3,] 3 13 23 33 43 53 63 73 83 93
[4,] 4 14 24 34 44 54 64 74 84 94
[5,] 5 15 25 35 45 55 65 75 85 95
[6,] 6 16 26 36 46 56 66 76 86 96
[7,] 7 17 27 37 47 57 67 77 87 97
[8,] 8 18 28 38 48 58 68 78 88 98
[9,] 9 19 29 39 49 59 69 79 89 99
[10,] 10 20 30 40 50 60 70 80 90 100
for (i in nrow(mymatrix)){
vector1 <- c(mymatrix[i,1:5])
vector2 <- c(mymatrix[i,6:10])
wilcox.test(vector1,vector2, paired = TRUE, alternative = "two.sided")
}
#Warning message:
In wilcox.test.default(vector1, vector2, paired = TRUE, alternative = "two.sided") :
cannot compute exact p-value with ties
# I also tried this, it doesn't work either.
for (i in nrow(mymatrix)){
wilcox.test(as.numeric(mymatrix[i,1:5],as.numeric(mymatrix[i,6:10]), paired = TRUE)
}
다음과 같은 것을 찾고 있습니다.
# initialize a list to store the p_values
p_values <- vector("list", nrow(mymatrix))
for(i in seq_along(1: nrow(mymatrix))){
p_values[i] = wilcox.test(mymatrix[i,1:5],mymatrix[i,6:10], paired = TRUE, alternative = "two.sided", exact = FALSE)$p.value
}
# make it a data.frame
p_values = data.frame(p_values = sapply(p_values, c))
#Output
p_values
# p_values
# 1 0.03688843
# 2 0.03688843
# 3 0.03688843
# 4 0.03688843
# 5 0.03688843
# 6 0.03688843
# 7 0.03688843
# 8 0.03688843
# 9 0.03688843
# 10 0.03688843
도움이되기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다