まずに基づいて特定の値を交換し、のは、データフレーム1(DF1)から始めましょう:、DF1内のすべての行については別のデータフレーム
DF2 <- data.frame(c("06/19/2016", "06/27/2016", "06/22/2016", "06/23/2016"),
c(1, 1, 2, 2),
c(9999, 8888, 777, 555),
c("LON", "LON", "QC", "QC"))
colnames(DF2) <- c("date", "id", "sales", "city")
:
DF1 <- data.frame(c("06/19/2016", "06/20/2016", "06/21/2016", "06/22/2016",
"06/23/2016", "06/19/2016", "06/20/2016", "06/21/2016",
"06/22/2016", "06/23/2016"),
c(1, 1, 1, 1, 1, 2, 2, 2, 2, 2),
c(149, 150, 151, 152, 155, 84, 83, 80, 81, 97),
c(101, 102, 104, 107, 99, 55, 55, 56, 57, 58),
c("MTL", "MTL", "MTL", "MTL", "MTL", "NY", "NY",
"NY", "NY", "NY"))
colnames(DF1) <- c("date", "id", "sales", "cost", "city")
私はまた、データフレーム2(DF2)を持っていますDF2に同じ日付とIDを持つ行があるかどうかを調べる必要があります。はいの場合は、DF1の値をDF2の値で置き換える必要があります。
DF2の列は常にDF1よりも少なくなります。列がDF2にない場合、その特定の列に対してDF1にあった元の値を保持する必要があります。
最終的な出力は、このことを希望:
results <- data.frame(c("06/19/2016", "06/20/2016", "06/21/2016", "06/22/2016",
"06/23/2016", "06/19/2016", "06/20/2016", "06/21/2016",
"06/22/2016", "06/23/2016"),
c(1, 1, 1, 1, 1, 2, 2, 2, 2, 2),
c(9999, 150, 151, 152, 155, 84, 83, 80, 777, 555),
c(101, 102, 104, 107, 99, 55, 55, 56, 57, 58),
c("LON", "MTL", "MTL", "MTL", "MTL", "NY", "NY",
"NY", "QC", "QC"))
colnames(results) <- c("date", "id", "sales", "cost", "city")
あなたが何か提案はありますか?
実際のデータセットでは、DF1には416の列があり、DF2には321の列があります。 – Alexis
@akrunありがとう!それは魅力のように機能します! – Alexis