r - 在 R - 检查另一个向量中的向量元素并写入出现次数
问题描述
我有以下 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
这对于第 2 周:
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 的第一列,但结果与我的预期相差甚远。
解决方案
这是一个 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
推荐阅读
- html - 容器内的项目不会浮动到最左边和最右边。尽管填充为 0,但两侧仍留有间隙
- angular - 对于不同的用户登录,我想显示不同的侧边栏选项
- gremlin - AWS Neptune 事务支持
- dart - Dart web教程问题重新生成app组件
- ms-access - 如何使 Microsoft Access 报告表中的行接触?
- scala - 模式匹配中使用的抽象类型的类型不匹配
- android - Travis CI 找不到我们的 gradlew 文件
- xml - 如何通过 XSLT 转换 XML 并忽略 2 XMLNS
- postgresql - 有效过滤类型忽略
- javascript - 将多个表单 datePicker 数据发送到相同的目的地