dplyr * _join () 함수에 대해 두 개의 'by'인수를 사용하여 R에서 두 데이터 세트를 결합하는 방법은 무엇입니까?

카 리마

이것이 내 두 데이터 세트라고 가정 해 봅시다.

# This is dataset "df"
df <- tibble(country = rep(c("US", "UK", "FRA", "SPA"), times = 3),
             date = rep(c("2020-01-01", "2020-02-01", "2020-03-01"), each = 4))

   country date
 1 FRA     2020-01-01
 2 SPA     2020-01-01
 3 UK      2020-01-01
 4 US      2020-01-01
 5 FRA     2020-02-01
 6 SPA     2020-02-01
 7 UK      2020-02-01
 8 US      2020-02-01
 9 FRA     2020-03-01
10 SPA     2020-03-01
11 UK      2020-03-01
12 US      2020-03-01

# This is dataset "dd"
dd <- tibble(country = rep(c("US", "UK", "FRA"), times = 3),
             date = rep(c("2020-01-01", "2020-02-01", "2020-03-01"), each = 3),
             cases = seq(1:9),
             deaths = seq(from = 2, to = 18, by = 2))

  country date       cases deaths
1 FRA     2020-01-01     1      2
2 UK      2020-01-01     2      4
3 US      2020-01-01     3      6
4 FRA     2020-02-01     4      8
5 UK      2020-02-01     5     10
6 US      2020-02-01     6     12
7 FRA     2020-03-01     7     14
8 UK      2020-03-01     8     16
9 US      2020-03-01     9     18

국가 및 날짜별로 사례 열 dj을 결합 하는 새 데이터 세트를 만들고 싶습니다 . 또한 누락 된 데이터 (예 : 국가 "SPA") 가있는 사례 열 (에서 ) 에 NA를 인쇄하고 싶습니다 .dfdddj

본질적으로 나는 dj"SPA"의 케이스에 대해 NA와 함께 12 개의 행과 3 개의 열 (국가, 날짜, 케이스)을 가지 려고합니다 . 이렇게 :

   country date       cases
1  FRA     2020-01-01     1
2  SPA     2020-01-01    NA
3  UK      2020-01-01     2
4  US      2020-01-01     3
5  FRA     2020-02-01     4
6  SPA     2020-02-01    NA
7  UK      2020-02-01     5
8  US      2020-02-01     6
9  FRA     2020-03-01     7
10 SPA     2020-03-01    NA
11 UK      2020-03-01     8
12 US      2020-03-01     9

난 당신이 () 함수를 dplyr 패키지 * _join을 사용하여 두 데이터 집합을 결합 할 수 있습니다 알고 있지만 난 단지 다른 데이터 세트에서 하나 개의 특정 컬럼에 데이터 집합을 병합 할 때 다음을 사용하는 방법 사용 인수 '에 의해'개 이상 (즉, 국가 및 데이트)??

나는 R을 처음 접했기 때문에 이것을 알아내는 데 어려움을 겪고 있으므로 어떤 도움이라도 대단히 감사하겠습니다 :)

TTS

dplyr당신 과 함께 사용할 수 left_join있고 select당신이 원하거나 원하지 않는 필드를 사용할 수 있습니다 . 기억 ?left_join(이하 "왼쪽"dataframe 표시됩니다 df유지 보수하는 모든 기록을 유지합니다 여기를) SPA값을.

또한 에서 '죽음'을 제거 select하기 전에 데이터 프레임에서를 수행 할 수 있습니다 . 여기서 중요한 부분은 모든 기록을 .joindfjoindf

library(dplyr)

dj <- left_join(df, dd, by = c('date', 'country')) %>%
  select(-deaths) # OR select(country, date, cases)

산출:

# A tibble: 12 x 3
   country date       cases
   <chr>   <chr>      <int>
 1 FRA     2020-01-01     3
 2 FRA     2020-02-01     6
 3 FRA     2020-03-01     9
 4 SPA     2020-01-01    NA
 5 SPA     2020-02-01    NA
 6 SPA     2020-03-01    NA
 7 UK      2020-01-01     2
 8 UK      2020-02-01     5
 9 UK      2020-03-01     8
10 US      2020-01-01     1
11 US      2020-02-01     4
12 US      2020-03-01     7

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관