>

이벤트 연구를위한 두 개의 데이터 프레임이 있으며 분석을 위해 데이터를 준비하는 데 약간의 어려움이 있습니다. df1에는 회사 ID와 이벤트 날짜가있는 두 개의 행이 있습니다. 일부 회사에는 이벤트 날짜가 두 개 이상 있으므로 모든 이벤트 날짜에 회사 ID가 표시됩니다 (즉, 고유 회사 ID보다 많은 열이 있음). 다른 회사 (df2)는 모든 회사의 주가를가집니다. 1 행은 회사 ID이고 아래의 모든 행은 1 열에 지정된 다른 날짜의 특정 회사의 주가입니다.

df1의 모든 회사 ID에 대해 df2의 일치하는 회사 ID (주가) 아래의 정보를 자체에 복사하도록 두 데이터 프레임을 병합 (또는 붙여 넣기)하고 싶습니다.

솔루션을 검색했지만 검색 결과에 별다른 영향을 미치지 않기 때문에 현재 검색하기에 좋지 않은 것 같습니다. 다른 병합 명령과 expand.grid를 시도했지만 r에 녹슬 었습니다.

df1 <- data.frame(X1 = c("Event date","Company ID"),
               X2 = c("2018-01-01","AA"),
               X3 = c("2017-05-03","BB"),
               X4 = c("2016-04-08","CC"),
               X5 = c("2015-02-02","BB"))
df2 <- data.frame(X1 = c("Date","2018-12-31","2018-01-01","2017-05-03","2016-12-31","2016-04-08","2015-02-02"),
               X2 = c("AA",100,102,101,98,99,99),
               X3 = c("BB",85,78,80,77,75,74),
               X4 = c("CC",55,53,54,55,54,54))

df-desired <- data.frame(X1 = c("Event date","Company ID","2018-12-31","2018-01-01","2017-05-03","2016-12-31","2016-04-08","2015-02-02"),
             X2 = c("2018-01-01","AA",100,102,101,98,99,99),
             X3 = c("2017-05-03","BB",85,78,80,77,75,74),
             X4 = c("2016-04-08","CC",55,53,54,55,54,54),
             X5 = c("2015-02-02","BB",85,78,80,77,75,74))

현재 데이터는 df1 및 df2와 같으며 원하는 결과는 df-desired입니다. 내가 어떤 명령을 조사해야하는지 누군가가 나를 도울 수 있다면 감사하겠습니다. 어떤 노력을 기울여야하는지 생각할 수 없으므로 누군가 나를 올바른 방향으로 안내 할 수 있기를 바랍니다!

  • 답변 # 1

    근사값은 dplyr::union() 를 사용하는 것입니다.  열 이름 변경 후 기능 :

    colnames(df1) = df1[2,]
    colnames(df1)[1] = "Date"
    colnames(df2) = df2[1,]
    dplyr::union(df1,df2)
    #        Date         AA         BB         CC         BB
    #1 2015-02-02         99         74         54         74
    #2 2016-04-08         99         75         54         75
    #3 2016-12-31         98         77         55         77
    #4 2017-05-03        101         80         54         80
    #5 2018-01-01        102         78         53         78
    #6 2018-12-31        100         85         55         85
    #7       Date         AA         BB         CC         BB
    #8 Company ID         AA         BB         CC         BB
    #9 Event date 2018-01-01 2017-05-03 2016-04-08 2017-05-03
    
    

    반복 된 행을 제거 할 수 있습니다

관련 자료

  • 이전 php - 테이블 중 하나가 주문 항목을 저장하는 다 대다 관계의 스키마를 설계하는 방법은 무엇입니까?
  • 다음 animate ()에 대해 javascript/jQuery로 중요!