이것이 내 두 데이터 세트라고 가정 해 봅시다.
# 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를 인쇄하고 싶습니다 .df
dd
dj
본질적으로 나는 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을 처음 접했기 때문에 이것을 알아내는 데 어려움을 겪고 있으므로 어떤 도움이라도 대단히 감사하겠습니다 :)
dplyr
당신 과 함께 사용할 수 left_join
있고 select
당신이 원하거나 원하지 않는 필드를 사용할 수 있습니다 . 기억 ?left_join
(이하 "왼쪽"dataframe 표시됩니다 df
유지 보수하는 모든 기록을 유지합니다 여기를) SPA
값을.
또한 에서 '죽음'을 제거 select
하기 전에 데이터 프레임에서를 수행 할 수 있습니다 . 여기서 중요한 부분은 모든 기록을 .join
df
join
df
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] 삭제
몇 마디 만하겠습니다