gpt4 book ai didi

r - 检查第 1 列值之前是否出现在具有不同第 2 列值的数据集中

转载 作者:行者123 更新时间:2023-12-04 11:07:32 26 4
gpt4 key购买 nike

我有这样的数据集

df <- data.frame(ID = c("m1","m2","m3","m4","m5","m6","m2","m3","m5","m6","m1","m4","m5"),
Year = c(1,1,1,1,1,1,2,2,2,2,3,3,3))

并想检查该 ID 是否出现在前一年。现在我有一个似乎可以工作的代码

df$Check <- apply(df, 1, function(x) x["ID"] %in% df[df$Year == (as.numeric(x["Year"]) - 1), "ID"])

但考虑到我的数据集有 300 万行,此函数运行时间太长。有更好的选择吗??

最佳答案

尝试

library(dplyr)
dfs <- split(df$ID, df$Year);
df$check <- unlist(mapply(`%in%`, dfs, lag(dfs)))

关于r - 检查第 1 列值之前是否出现在具有不同第 2 列值的数据集中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40949423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com