我有以下dfs报告了第1周和第2周中某些代码的出现
第1周:
w1 <- data.frame("Code" = c("B00F328AFW", "B0792HCFTG", "B071SDVC6Z", "B0792H8GHP", "X000MLAQUJ"), "Occs" = c(31, 23, 19, 18, 16))
# Code # Occs
B00F328AFW 31
B0792HCFTG 23
B071SDVC6Z 19
B0792H8GHP 18
X000MLAQUJ 16
第二周:
w2 <- data.frame("Code" = c("X000VID7DV", "X000MLAQUJ", "B000FNFSPY", "X000Z94DWZ", "B01I3DT21I", "X000SC7OO3", "B00F328AFW", "B071SDVC6Z"), "Occs" = c(27, 21, 20, 20, 19, 19, 15, 14))
# Code # Occs
X000VID7DV 27
X000MLAQUJ 21
B000FNFSPY 20
X000Z94DWZ 20
B01I3DT21I 19
X000SC7OO3 19
B00F328AFW 15
B071SDVC6Z 14
我想了解第二周是否存在第一周的代码以及出现的次数(如果与前一周相比有多少不同)。
不幸的是,我对如何进行操作一无所知,我只是尝试使用%in%函数比较dfs的第一列,但结果远远超出了我的期望。
答案 0 :(得分:1)
这是dplyr解决方案。
library(dplyr)
w1 %>% inner_join(w2, by = "Code") %>%
mutate(compare = case_when(
Occs.y > Occs.x ~ "more",
Occs.y < Occs.x ~ "less",
Occs.y == Occs.x ~ "same")) %>%
rename(Occ_week1 = Occs.x, Occ_week2 = Occs.y)
Code Occ_week1 Occ_week2 compare
1 B00F328AFW 31 15 less
2 B071SDVC6Z 19 14 less
3 X000MLAQUJ 16 21 more