我的问题如下: 我需要分析具有多个条目的几个不同文件中的数据(每列最多500.000,总共10列)。 这些文件通过使用ID(例如, ORDER_ID。 但是,这些ID可能会出现多次,例如当订单包含多个订单行时。也有可能一个ID没有出现在其中一个文件中,例如因为包含销售数据的文件仅包含有关已发货订单的信息,而没有有关尚未发货的订单的信息。
因此,我有不同长度和唯一ID的不同文件,这些ID标识了在所有数据文件上的外观(是否存在)可能不同的位置。 我现在想要的是按ID过滤一个文件,以便它仅显示另一个文件中列出的ID。另外,应该将第一个文件中的其他列移到上方。
我所拥有的例子: dt1:
ORDER_ID SKU_ID Quantity_Shipped
12345 678910 100
12346 648392 30
64739 648392 20
dt2:
ORDER_ID Country
12345 DE
12346 DE
55430 SE
90632 JPN
76543 ARG
64739 CH
我想要什么:
ORDER_ID SKU_ID Quantity_Shipped Country
12345 678910 100 DE
12346 648392 30 DE
64739 648392 20 CH
最初,数据是从csv文件导入的。 到目前为止,我使用的方法在合并两个文件时有效。 当尝试从第三个文件中添加信息时,我只得到NA作为答案。我该怎么做才能解决此问题?
这是我到目前为止使用的方法。
df2 <- data.frame(ORDER_ID = sales[["ORDER_ID"]])
df1 <- data.frame(ORDER_ID = OL[["ORDER_ID"]],SKU_ID = OL[["SKU_ID"]],QTY_SHIPPED = OL[["QTY_SHIPPED"]],EXPECTED_VOLUME =
OL[["EXPECTED_VOLUME"]])
library(data.table)
dt2 <- data.table(df1)
dt1 <- data.table(df2)
dt3 <- dt2[match(dt1$ORDER_ID,dt2$ORDER_ID),]