Возможно ли объединить несколько операций слияния одну за другой с помощью data.tables
?
Функциональность будет аналогична объединению нескольких d ata.frames
в трубу dplyr
, но будет использоваться для data.tables
в цепочке, аналогичной объединению двух data.tables
в приведенном ниже, а затем манипулированию data.table
, как требуется.Но только тогда вы сможете объединить еще одну data.table
.Я признаю этот ТАК вопрос здесь может быть очень похожим, то есть после того, как @ chinsoon12 опубликовал комментарий.
Спасибо за любую помощь!
library(dplyr)
library(data.table)
# data.frame
df1 = data.frame(food = c("apples", "bananas", "carrots", "dates"),
quantity = c(1:4))
df2 = data.frame(food = c("apples", "bananas", "carrots", "dates"),
status = c("good", "bad", "rotten", "raw"))
df3 = data.frame(food = c("apples", "bananas", "carrots", "dates"),
rank = c("okay", "good", "better", "best"))
df4 = left_join(df1,
df2,
by = "food") %>%
mutate(new_col = NA) %>% # this is just to hold a position of mutation in the data.frame
left_join(.,
df3,
by = "food")
# data.table
dt1 = data.table(food = c("apples", "bananas", "carrots", "dates"),
quantity = c(1:4))
dt2 = data.table(food = c("apples", "bananas", "carrots", "dates"),
status = c("good", "bad", "rotten", "raw"))
dt3 = data.table(food = c("apples", "bananas", "carrots", "dates"),
rank = c("okay", "good", "better", "best"))
# this is what I am not sure how to implement
dt4 = merge(dt1,
dt2,
by = "food")[
food == "apples"](merge(dt4))