데이터 세트의 동일한 열을 R의 다른 모든 열에 병합 하시겠습니까?

도주

동일한 데이터 세트의 다른 열에 여러 병합 / 조인을 시도하고 있지만 그렇게 할 때 출력이 완전히 잘못되었습니다.

df1                 df2
P1  P2  P3  P4      P   Output  
A   B   C           C   1                 
A   B               B   2          
E   F   G   H       H   3
E                   E   4

df2를 df1에 병합하려고하는데 내가 얻고 싶은 출력은 다음과 같습니다.

df3
P1  P2 P3  P4  Output   
A   B  C   NA  1
A   B  NA  NA  2
E   F  G   H   3
E   NA NA  NA  4

난 노력 했어

df3<- merge(df1,df2, by.x = "P1", by.y = "P", all.x = T, all.y = T)
df3<- merge(df1,df2, by.x = "P2", by.y = "P", all.x = T, all.y = T)
df3<- merge(df1,df2, by.x = "P3", by.y = "P", all.x = T, all.y = T)
df3<- merge(df1,df2, by.x = "P4", by.y = "P", all.x = T, all.y = T)

그러나 그것은 내가 생각하는 방식으로 작동하지 않습니다. 이렇게 깔끔하게 병합 할 수있는 더 쉬운 기능이 있나요?

Akrun

표시된 출력을 기반으로 각 행에 대해 last비 NA 요소 를 가져 오고 match두 번째 data.frame 'P'열을 사용하여 해당 '출력'을 가져와야 하는 것으로 보입니다 . 그것이 논리라면

df3 <- df1
df3$Output <- apply(df1, 1, function(x) 
        setNames(df2$Output, df2$P)[tail(x[!is.na(x)], 1)])

또는 tidyverse

library(dplyr)
library(tidyr)
df1 %>%
   mutate(rn = row_number()) %>%
   pivot_longer(cols = -rn, values_drop_na = TRUE) %>% 
   group_by(rn) %>%
   slice(n()) %>%
   ungroup %>% 
   left_join(df2, by = c('value' = 'P')) %>% 
   select(Output) %>% 
   bind_cols(df1, .)

데이터

df1 <- structure(list(P1 = c("A", "A", "E", "E"), P2 = c("B", "B", "F", 
NA), P3 = c("C", NA, "G", NA), P4 = c(NA, NA, "H", NA)), class = "data.frame", 
row.names = c(NA, 
-4L))

df2 <- structure(list(P = c("C", "B", "H", "E"), Output = 1:4), 
class = "data.frame", row.names = c(NA, 
-4L))

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

키가 한 데이터 세트의 열에 있고 R의 다른 행에있는 데이터 세트 병합

분류에서Dev

SQL A 열의 모든 값에 대해 A 열의 값이 동일한 B 열의 모든 값을 연결합니다.

분류에서Dev

데이터 프레임의 한 열을 다른 열과 일치시키고, 다른 열을 가져오고, 대규모 데이터 세트로 결합

분류에서Dev

SQL은 열 세트의 모든 값이 동일한 경우에만 행을 삭제합니다.

분류에서Dev

SQL은 열 세트의 모든 값이 동일한 경우에만 행을 삭제합니다.

분류에서Dev

동일한 데이터 세트에서 얻은 다른 열 콘텐츠에서 작성된 파일의 파일 이름에 SQL 열 값을 연결합니다.

분류에서Dev

병합시 두 데이터 프레임에서 동일한 열의 null이 아닌 값을 선택 하시겠습니까?

분류에서Dev

R의 그룹으로 데이터 세트의 모든 x 개 열을 반복합니다.

분류에서Dev

한 데이터 세트에서 열을 추출하고 R의 세 번째 데이터 세트의 열로 다른 데이터 세트 만들기

분류에서Dev

특정 열 값의 모든 조합에 대해 다른 열에 동일한 요소를 포함하는 데이터 프레임에 행 유지

분류에서Dev

Javascript는 필요한 모든 데이터를 얻기 위해 2 개의 배열을 세 번째 배열로 병합합니다.

분류에서Dev

열의 값이 다른 데이터 세트의 열 값과 일치하지 않는 모든 행 삭제

분류에서Dev

서로 다른 테이블의 동일한 열 3 개 이상에서 데이터를 단일 열로 병합

분류에서Dev

R에서 열 이름이 다른 데이터 세트 일치 및 병합

분류에서Dev

선택한 열을 일치시켜 두 개의 다차원 배열을 병합하고 모든 행과 열이있는 새 배열을 반환합니다.

분류에서Dev

R : 열의 값을 기준으로 두 데이터 프레임을 병합하고 두 데이터 프레임의 모든 값을 반환합니다.

분류에서Dev

힘내 : 현재 분기에없는 다른 분기의 모든 파일을 나열 하시겠습니까?

분류에서Dev

Ruby는 JSON.parse에 대한 해시 배열의 모든 동일한 객체 데이터를 업데이트합니다.

분류에서Dev

모든 요소에서 다른 JSON 배열 업데이트의 결과 인 여러 PostgreSQL JSON 배열을 병합하는 방법은 무엇입니까?

분류에서Dev

R data.table은 동일한 테이블의 두 열을 병합합니다.

분류에서Dev

데이터 프레임에있는 모든 셀의 문자열 길이를 제한 하시겠습니까?

분류에서Dev

중복 항목을 제거하고 Datatable의 모든 열 데이터를 병합합니다.

분류에서Dev

다른 두 문자열 사이의 모든 문자열을 추출 하시겠습니까?

분류에서Dev

두 배열을 매핑하여 하나의 다른 데이터를 병합하는 경우 항목 ID가 자바 스크립트에서 동일합니다.

분류에서Dev

여러 열을 모두 다른 테이블의 동일한 열에 결합

분류에서Dev

배열 Vue Js의 다른 다른 json 객체에 동일한 값을 가진 배열의 모든 json 객체에 새 항목 추가 / 병합

분류에서Dev

Python을 사용하여 동일한 열을 두 개의 다른 열 병합

분류에서Dev

행 열의 누계를 현명하게 찾아 동일한 데이터 세트의 다른 행에 표시

분류에서Dev

html 페이지의 모든 가격을 한 통화에서 다른 통화로 변경 하시겠습니까?

Related 관련 기사

  1. 1

    키가 한 데이터 세트의 열에 있고 R의 다른 행에있는 데이터 세트 병합

  2. 2

    SQL A 열의 모든 값에 대해 A 열의 값이 동일한 B 열의 모든 값을 연결합니다.

  3. 3

    데이터 프레임의 한 열을 다른 열과 일치시키고, 다른 열을 가져오고, 대규모 데이터 세트로 결합

  4. 4

    SQL은 열 세트의 모든 값이 동일한 경우에만 행을 삭제합니다.

  5. 5

    SQL은 열 세트의 모든 값이 동일한 경우에만 행을 삭제합니다.

  6. 6

    동일한 데이터 세트에서 얻은 다른 열 콘텐츠에서 작성된 파일의 파일 이름에 SQL 열 값을 연결합니다.

  7. 7

    병합시 두 데이터 프레임에서 동일한 열의 null이 아닌 값을 선택 하시겠습니까?

  8. 8

    R의 그룹으로 데이터 세트의 모든 x 개 열을 반복합니다.

  9. 9

    한 데이터 세트에서 열을 추출하고 R의 세 번째 데이터 세트의 열로 다른 데이터 세트 만들기

  10. 10

    특정 열 값의 모든 조합에 대해 다른 열에 동일한 요소를 포함하는 데이터 프레임에 행 유지

  11. 11

    Javascript는 필요한 모든 데이터를 얻기 위해 2 개의 배열을 세 번째 배열로 병합합니다.

  12. 12

    열의 값이 다른 데이터 세트의 열 값과 일치하지 않는 모든 행 삭제

  13. 13

    서로 다른 테이블의 동일한 열 3 개 이상에서 데이터를 단일 열로 병합

  14. 14

    R에서 열 이름이 다른 데이터 세트 일치 및 병합

  15. 15

    선택한 열을 일치시켜 두 개의 다차원 배열을 병합하고 모든 행과 열이있는 새 배열을 반환합니다.

  16. 16

    R : 열의 값을 기준으로 두 데이터 프레임을 병합하고 두 데이터 프레임의 모든 값을 반환합니다.

  17. 17

    힘내 : 현재 분기에없는 다른 분기의 모든 파일을 나열 하시겠습니까?

  18. 18

    Ruby는 JSON.parse에 대한 해시 배열의 모든 동일한 객체 데이터를 업데이트합니다.

  19. 19

    모든 요소에서 다른 JSON 배열 업데이트의 결과 인 여러 PostgreSQL JSON 배열을 병합하는 방법은 무엇입니까?

  20. 20

    R data.table은 동일한 테이블의 두 열을 병합합니다.

  21. 21

    데이터 프레임에있는 모든 셀의 문자열 길이를 제한 하시겠습니까?

  22. 22

    중복 항목을 제거하고 Datatable의 모든 열 데이터를 병합합니다.

  23. 23

    다른 두 문자열 사이의 모든 문자열을 추출 하시겠습니까?

  24. 24

    두 배열을 매핑하여 하나의 다른 데이터를 병합하는 경우 항목 ID가 자바 스크립트에서 동일합니다.

  25. 25

    여러 열을 모두 다른 테이블의 동일한 열에 결합

  26. 26

    배열 Vue Js의 다른 다른 json 객체에 동일한 값을 가진 배열의 모든 json 객체에 새 항목 추가 / 병합

  27. 27

    Python을 사용하여 동일한 열을 두 개의 다른 열 병합

  28. 28

    행 열의 누계를 현명하게 찾아 동일한 데이터 세트의 다른 행에 표시

  29. 29

    html 페이지의 모든 가격을 한 통화에서 다른 통화로 변경 하시겠습니까?

뜨겁다태그

보관