【发布时间】:2020-07-09 09:07:56
【问题描述】:
由于我是 data.table 包的新手,我想将我通常在下面的 data.frame 结构中执行的操作复制到 data.table 结构中。
Dta <- data.frame(Customer = c("Javier","Oscar","Ivan","Peter"),Type_of_Customer=LETTERS[c(1,1:3)])
Dtb <- data.frame(Customer = c("Javier","Oscar","Ivan","Jack"),Zone=5:8,District=100:103)
Result <- cbind(Dtb[match(Dtb[,"Customer"],Dta[,"Customer"]),c("Zone","District")],Dta)
ww <- which(is.na(Result[,"Zone"]))
if(length(ww) > 0){
Result[ww,"Zone"] <- "Not in Dtb"
}
ww <- which(is.na(Result[,"District"]))
if(length(ww) > 0){
Result[ww,"District"] <- "Not in Dtb"
}
所以如果我有 Dta 和 Dtb 作为 data.table 结构,那该怎么办?
(注意:在实际示例中,我有大约 1000 万行,所以我需要更省时的解决方案)
Dta <- data.table(Custumer = c("Javier","Oscar","Ivan","Peter"),Type_of_Customer=LETTERS[c(1,1:3)])
Dtb <- data.table(Custumer = c("Javier","Oscar","Ivan","Jack"),Zone=5:8,District=100:103)
谢谢。
【问题讨论】:
-
变量“Result”是我期望的输出。
-
我发布了一个解决方案,请检查
标签: data.table data.frame r dataframe data.table data-manipulation