R에서 서로 다른 데이터 프레임의 행을 비교하기위한 비모수 테스트

존 피스 티 키스

이것은 나의 첫 번째 게시물입니다.

각 행에 대해 단계별 비모수 테스트를 수행하려는 4 개의 데이터 프레임이 있습니다.

여기에 이미지 설명 입력

예 : 데이터 프레임 A의 각 행 값을 데이터 프레임 B의 각 행 값과 비교하고 싶습니다.

예를 들어 비 매개 변수 테스트가 필요합니다. 윌 콕슨이나 뭐든지.

중간 값으로 새로운 칼럼을 만들려고했지만 더 나은 것이 있다고 확신합니다.

이 작업을 수행하는 방법을 알려 주시겠습니까?

미리 감사드립니다!

편집 : 여기 내 가상 데이터 프레임이 있습니다.

각 데이터 프레임을 행 단위로 비교하고 싶습니다. 예를 들어 데이터 프레임 A와 B에서 John에 대한 비모수 테스트를 수행 한 다음 Dora 등에 대해 수행합니다.

A <- data.frame("A" = c("John","Dora","Robert","Jim"), 
                "A1" = c(8,1,10,5), 
                "A2"= c(9,1,1,4))
B <- data.frame("B" = c("John","Dora","Robert","Jim"), 
                "B1" = c(1,1,1,5), 
                "B2"= c(3,2,1,5), 
                "B3"=c(4,3,1,5), 
                "B4"=c(6,8,8,1))
dc37

나는 당신이 기능 wilcox.test( stats패키지)을 찾고 있다고 생각합니다 .

해결 방법 1 : for loop

A의 각 행을 B의 해당 행과 비교하고 p 값을 추출하는 한 가지 방법은 다음 for loop과 같이 만드는 것입니다 .

pval = NULL
for(i in 1:nrow(A))
{
    vec_a = as.numeric(A[i,2:ncol(A)])
    vec_b = as.numeric(B[B$B == A$A[i],2:ncol(B)])

    p <- wilcox.test(vec_a,vec_b)
    pval = c(pval, p$p.value)
    print(p)
}

마지막 pval으로 각 행에 대한 pvalue를 포함 하는 벡터 얻습니다 .

pval
[1] 0.1333333 0.2188194 0.5838824 1.0000000

해결 방법 2 : 사용 tidyverse

보다 우아한 솔루션은 tidyverse패키지 (특히 dplyrtidyr)를 사용하여 데이터 프레임을 단일 프레임으로 어셈블하고 함수에 수식을 전달하여 각 이름을 그룹별로 비교하는 것 wilcox.test입니다.

먼저 다음에서 left_join함수를 사용하여 이름별로 데이터 프레임을 병합 할 수 있습니다 dplyr.

library(dplyr)
DF <- left_join(A,B, by = c("A"="B"))

       A A1 A2 B1 B2 B3 B4
1   John  8  9  1  3  4  6
2   Dora  1  1  1  2  3  8
3 Robert 10  1  1  1  1  8
4    Jim  5  4  5  5  5  1

그런 다음 dplyrtidyr패키지를 사용 하여 데이터 프레임을 더 긴 형식으로 재구성 할 수 있습니다.

library(dplyr)
library(tidyr)
DF %>% pivot_longer(., -A, names_to = "var", values_to = "values") 

# A tibble: 24 x 3
   A     var   values
   <fct> <chr>  <dbl>
 1 John  A1         8
 2 John  A2         9
 3 John  B1         1
 4 John  B2         3
 5 John  B3         4
 6 John  B4         6
 7 Dora  A1         1
 8 Dora  A2         1
 9 Dora  B1         1
10 Dora  B2         2
# … with 14 more rows

var 열의 값에 따라 A 또는 B를 나타내는 새 열 "그룹"을 생성합니다.

DF %>% pivot_longer(., -A, names_to = "var", values_to = "values") %>%
  mutate(group = gsub("\\d","",var))

# A tibble: 24 x 4
   A     var   values group
   <fct> <chr>  <dbl> <chr>
 1 John  A1         8 A    
 2 John  A2         9 A    
 3 John  B1         1 B    
 4 John  B2         3 B    
 5 John  B3         4 B    
 6 John  B4         6 B    
 7 Dora  A1         1 A    
 8 Dora  A2         1 A    
 9 Dora  B1         1 B    
10 Dora  B2         2 B    
# … with 14 more rows

마지막으로 각 이름에 대해 각 그룹의 값을 비교할 때 A함수의 p 값을 얻기 위해 데이터 프레임을 그룹화 하고 요약 할 수 있습니다 wilcox.test.

DF %>% pivot_longer(., -A, names_to = "var", values_to = "values") %>%
  mutate(group = gsub("\\d","",var)) %>%
  group_by(A) %>%
  summarise(Pval = wilcox.test(values~group)$p.value)

# A tibble: 4 x 2
  A       Pval
  <fct>  <dbl>
1 Dora   0.219
2 Jim    1    
3 John   0.133
4 Robert 0.584

더 길어 보이지만 (특히 각 단계를 설명하기 때문에) 마지막에는 첫 번째 솔루션보다 더 적은 줄이 필요하다는 것을 알 수 있습니다.

귀하의 질문에 대한 답변이 있습니까?

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 서버의 테이블간에 데이터를 비교하기 위해 스크립트 실행 문제

분류에서Dev

R에서 서로 다른 두 데이터 프레임의 열 변수를 사용하는 T 테스트

분류에서Dev

R-모든 열에서 데이터 프레임 열의 모든 요소를 다른 데이터 프레임의 한 행에있는 요소와 비교

분류에서Dev

다른 pandas 데이터 프레임의 모든 행에서 값 비교

분류에서Dev

두 개의 서로 다른 데이터 프레임에서 두 행을 비교하는 방법 Pandas

분류에서Dev

R에서 : 다른 테이블의 행을 기반으로 데이터 프레임의 행 재정렬

분류에서Dev

여러 행 조건을 기반으로 두 개의 서로 다른 데이터 프레임 비교

분류에서Dev

R [r]에서 서로 다른 두 개의 데이터 프레임 비교

분류에서Dev

두 개의 팬더 데이터 프레임에서 다른 행을 얻기 위해 여러 열을 비교하십시오.

분류에서Dev

서로 다른 데이터 프레임에서 두 개의 시간 열을 비교하고 가장 유사한 값 (동일하지 않음) 찾기 / 유지

분류에서Dev

R에서 두 열 쌍을 데이터 프레임의 다른 열 쌍과 비교하는 방법

분류에서Dev

서로 다른 형식의 전화 번호를 포함하는 두 개의 데이터 프레임 열을 비교하여 데이터 프레임 필터링

분류에서Dev

R : 다른 데이터 프레임에서 일치하는 행을 기반으로 열 업데이트

분류에서Dev

다른 데이터 프레임과 비교하여 고유 한 클래스 멤버십 (열에서)이 다른 데이터 프레임 행을 어떻게 가져올 수 있습니까?

분류에서Dev

R에서 두 데이터 프레임의 행을 비교하는 방법

분류에서Dev

R에서 두 데이터 프레임을 비교하기위한 FOR 루프 최적화

분류에서Dev

Pandas에서 서로 다른 두 데이터 프레임의 열을 일치시켜 한 데이터 프레임의 열을 업데이트하는 방법

분류에서Dev

r 두 데이터 프레임의 데이터를 일치시킨 다음 다른 열의 텍스트에서 일치하는 행을 확인합니다.

분류에서Dev

다른 데이터 프레임에있는 행의 조건을 기반으로 한 데이터 프레임의 행 인덱스를 찾는 벡터화 방법

분류에서Dev

Spark SQL : 한 데이터 프레임의 각 행을 다른 데이터 프레임에서 빼기

분류에서Dev

Python Pandas에서 2 개의 서로 다른 데이터 프레임 비교

분류에서Dev

pandas 데이터 프레임을 반복하고, 다른 행의 데이터에서 값을 업데이트하고, 다른 행을 삭제합니다.

분류에서Dev

다른 열의 값을 기반으로 데이터 프레임에서 조회 수행

분류에서Dev

각 행의 모든 열을 문자열로 연결하고 R의 다른 데이터 프레임에 기록

분류에서Dev

R의 서로 다른 두 데이터 프레임에서 두 타임 스탬프 사이의 행 계산

분류에서Dev

R의 다른 데이터 프레임 내의 열을 기반으로 데이터 프레임에서 변수 제거

분류에서Dev

포스트 그레스에서 다중 행 비교 연산을 기반으로 업데이트 테이블 열

분류에서Dev

일부 값을 비교하여 다른 스프레드 시트에서 데이터 가져 오기

분류에서Dev

R에서 동일한 값의 인덱스를 찾기 위해 두 데이터 프레임의 첫 번째 열 값을 비교합니까?

Related 관련 기사

  1. 1

    다른 서버의 테이블간에 데이터를 비교하기 위해 스크립트 실행 문제

  2. 2

    R에서 서로 다른 두 데이터 프레임의 열 변수를 사용하는 T 테스트

  3. 3

    R-모든 열에서 데이터 프레임 열의 모든 요소를 다른 데이터 프레임의 한 행에있는 요소와 비교

  4. 4

    다른 pandas 데이터 프레임의 모든 행에서 값 비교

  5. 5

    두 개의 서로 다른 데이터 프레임에서 두 행을 비교하는 방법 Pandas

  6. 6

    R에서 : 다른 테이블의 행을 기반으로 데이터 프레임의 행 재정렬

  7. 7

    여러 행 조건을 기반으로 두 개의 서로 다른 데이터 프레임 비교

  8. 8

    R [r]에서 서로 다른 두 개의 데이터 프레임 비교

  9. 9

    두 개의 팬더 데이터 프레임에서 다른 행을 얻기 위해 여러 열을 비교하십시오.

  10. 10

    서로 다른 데이터 프레임에서 두 개의 시간 열을 비교하고 가장 유사한 값 (동일하지 않음) 찾기 / 유지

  11. 11

    R에서 두 열 쌍을 데이터 프레임의 다른 열 쌍과 비교하는 방법

  12. 12

    서로 다른 형식의 전화 번호를 포함하는 두 개의 데이터 프레임 열을 비교하여 데이터 프레임 필터링

  13. 13

    R : 다른 데이터 프레임에서 일치하는 행을 기반으로 열 업데이트

  14. 14

    다른 데이터 프레임과 비교하여 고유 한 클래스 멤버십 (열에서)이 다른 데이터 프레임 행을 어떻게 가져올 수 있습니까?

  15. 15

    R에서 두 데이터 프레임의 행을 비교하는 방법

  16. 16

    R에서 두 데이터 프레임을 비교하기위한 FOR 루프 최적화

  17. 17

    Pandas에서 서로 다른 두 데이터 프레임의 열을 일치시켜 한 데이터 프레임의 열을 업데이트하는 방법

  18. 18

    r 두 데이터 프레임의 데이터를 일치시킨 다음 다른 열의 텍스트에서 일치하는 행을 확인합니다.

  19. 19

    다른 데이터 프레임에있는 행의 조건을 기반으로 한 데이터 프레임의 행 인덱스를 찾는 벡터화 방법

  20. 20

    Spark SQL : 한 데이터 프레임의 각 행을 다른 데이터 프레임에서 빼기

  21. 21

    Python Pandas에서 2 개의 서로 다른 데이터 프레임 비교

  22. 22

    pandas 데이터 프레임을 반복하고, 다른 행의 데이터에서 값을 업데이트하고, 다른 행을 삭제합니다.

  23. 23

    다른 열의 값을 기반으로 데이터 프레임에서 조회 수행

  24. 24

    각 행의 모든 열을 문자열로 연결하고 R의 다른 데이터 프레임에 기록

  25. 25

    R의 서로 다른 두 데이터 프레임에서 두 타임 스탬프 사이의 행 계산

  26. 26

    R의 다른 데이터 프레임 내의 열을 기반으로 데이터 프레임에서 변수 제거

  27. 27

    포스트 그레스에서 다중 행 비교 연산을 기반으로 업데이트 테이블 열

  28. 28

    일부 값을 비교하여 다른 스프레드 시트에서 데이터 가져 오기

  29. 29

    R에서 동일한 값의 인덱스를 찾기 위해 두 데이터 프레임의 첫 번째 열 값을 비교합니까?

뜨겁다태그

보관