data.tables
두 개를 병합하려고합니다. 하나는 연간 양자 간 등 :R 합계 분기 별 데이터 테이블을 양측 연간 데이터 테이블에 병합합니다. 각 분기 별 차원을 확장하면서
quarterly <- data.table(country=c(rep("DE",4),rep("AT",4)),
time=c(rep(c("2001Q1","2001Q2","2001Q3","2001Q4"),2)),
aggregate_value=rnorm(8))
내가 올해 물론 작동 시간 (yearquarter)에 의해 병합 할 :
을 같은library(data.table)
bilateral <- data.table(country=c("AT","AT","DE","DE"),
counterparty=c("DE","FR","AT","FR"),
time=c("2001Q1"),
bilateral_value=rnorm(4))
bilateral[,countrypair:=paste(country,counterparty,sep="_")]
분기 집계되고 다른,
Data <- merge(bilateral, quarterly,by=c("country","time"),all=T)
하지만, 그래서 duplicat 할 (country
에 해당하는 countrypair에 대한 NA's
하지만 aggregate_value
사용) 분기를 채우기 위해 싶습니다 각 쌍 쌍에 대한 분기 별 데이터 세트의 값은 country
을 기준으로합니다. 나는 이것이 merge.data.table
에 직접적으로 가능해야한다고 생각하지만 나는 어떻게 생각할 수 없다.
내가 목표로하고있다 :
goal <- data.table(country=c(rep("DE",8),rep("AT",8)),
counterparty=c("AT",NA,NA,NA,"FR",NA,NA,NA,"DE",NA,NA,NA,
"FR",NA,NA,NA),
time=c(rep(c("2001Q1","2001Q2","2001Q3","2001Q4"),4)),
bilateral_value=c(Data[1,bilateral_value],NA,NA,NA,
Data[2,bilateral_value],NA,NA,NA,
Data[6,bilateral_value],NA,NA,NA,
Data[7,bilateral_value],NA,NA,NA),
countrypair=c("AT_DE",NA,NA,NA,"AT_FR",NA,NA,NA,"DE_AT",NA,NA,NA,
"DE_FR",NA,NA,NA),
aggregate_value=c(rep(Data[2:5,aggregate_value],2),
rep(Data[7:10,aggregate_value],2)))
"aggregate_value 국가에 대응하는 '- 내가 잘못 본 것이 아니라면 이것은'goal' 데이터 세트에 들어 있지 않습니다. 또한 FR과 Fr 국가를 사용하는 것 같습니다. 예를 들어 더 조심하거나 단순화 할 수 있습니다. – Frank
Fr이 (가) 편집했습니다. 모든 국가의 모든 거래 상대방에 대해 집계 된 데이터가 반복됩니다. –