2017-11-21 4 views
-1

모든 열에 yyyy-mm이있는 여러 데이터 프레임 (총 17 개)과 그 달에 해당하는 값이있는 다른 열을 결합하고 싶습니다.열의 특정 값으로 열 바인딩

데이터 프레임이 모두 같은 달에 시작하지 않으며 길이가 비슷하지 않습니다.

모든 데이터 프레임의 yyyy-mm이 각각 결합 된 데이터 프레임에 표시되도록 조합하고 NA가없는 값이없는 경우 행을 채우므로 아무것도 건너 뛰지 않습니다.

어떻게하면됩니까?

+3

예상되는 출력과 함께 최소한의 [재현 가능한 예] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)를 제공해주십시오. – lmo

+0

병합 기능을 살펴 보겠습니다. 공통 열에 모든 데이터 프레임을 병합하려는 경우 (날짜) – denis

답변

1

여기에 full_join을 사용하여 마무리하고 있지만 재현 예제는 문제를 이해하는 것이 좋습니다. 여러 개의 data.frames로 파이프 만 사용하십시오.

tbl_a <- tibble(
    month = c("2017-01", "2017-02", "2017-03"), 
    value = c(1, 2, 3) 
) 

tbl_b <- tibble(
    month = c("2017-01", "2017-03", "2017-04"), 
    value = c(5, 6, 7) 
) 

tbl_c <- tibble(
    month = c("2017-01", "2017-06", "2017-07"), 
    value = c(8, 9, 10) 
) 

full_join(tbl_a, tbl_b, by="month") %>% 
    full_join(tbl_c, by="month") 

# A tibble: 6 x 4 
    month value.x value.y value 
    <chr> <dbl> <dbl> <dbl> 
1 2017-01  1  5  8 
2 2017-02  2  NA NA 
3 2017-03  3  6 NA 
4 2017-04  NA  7 NA 
5 2017-06  NA  NA  9 
6 2017-07  NA  NA 10 
0

답변 해 주셔서 감사합니다. 그것이 사용 고정 : reg_month_temp < - 병합 (ben_regsum, delta_regsum, 의해 을 = "year_month"모든 = TRUE)

그 다음 병합 된 데이터 프레임을 한 번에 하나 개의 데이터 프레임을 추가했다.

이것은 제대로 작동했습니다. all = TRUE를 사용하여 year_month에 대한 모든 항목을 유지하고 나머지는 NA로 채 웁니다.

관련 문제