【发布时间】:2021-09-02 04:28:06
【问题描述】:
我得到了两个不同长度的数据集。我想在数据集中创建一个新列,该列基于从较短的 df 中过滤特定列来获得更多行。我收到警告“较长的对象长度不是较短对象长度的倍数”。结果也不正确。我尝试创建一个较小的示例数据集,并尝试了相同的代码及其正确的结果。我不确定为什么我的原始数据结果不正确,我收到了警告。 示例数据集是
structure(list(id = 1:10, activity = c(0, 0, 0, 0, 1, 0, 0, 1,
0, 0), code = c(2, 5, 11, 15, 3, 18, 21, 3, 27, 55)), class = "data.frame", row.names = c(NA,
-10L))
第二个df
structure(list(id2 = 1:20, code2 = c(2, 5, 11, 15, 9, 18, 21,
3, 27, 55, 2, 5, 11, 15, 3, 18, 21, 3, 27, 55), d_Activity = c(0,
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0)), class = "data.frame", row.names = c(NA,
-20L))
我在收到警告的原始数据集和没有警告但结果正确的虚拟 dfs 上都尝试了此方法。
data2 <- data2 %>%
mutate(d_Activity = ifelse(code2 %in% data1$code & activity == 1, 1,0))
【问题讨论】: