R函数检索个人最后看到的信息
我有一个数据集,包含2015年至2020年间每天对个人的观察结果。我有一个函数,它给我一个从所选日期(今年被看到的个人)开始的“假定活着”列表,以及他们的ID和最后一次看到的日期R函数检索个人最后看到的信息,r,R,我有一个数据集,包含2015年至2020年间每天对个人的观察结果。我有一个函数,它给我一个从所选日期(今年被看到的个人)开始的“假定活着”列表,以及他们的ID和最后一次看到的日期 ##possible population now? (seen < 12 months) alive_birds <- function(data, date) { data %>% dplyr::group_by(ID) %>% dplyr::mutate(last_se
##possible population now? (seen < 12 months)
alive_birds <- function(data, date) {
data %>%
dplyr::group_by(ID) %>%
dplyr::mutate(last_seen = as.Date(max(Date))) %>%
dplyr::filter(last_seen > date - lubridate::years(1)) %>% # ! between is shortcut to (x >= left & x <= right)
dplyr::select(ID,last_seen) %>%
dplyr::distinct()
}
possible_population <- alive_birds(FODYdataVERTICAL, as.Date('2020-09-30'))
length(possible_population$ID)# View possible population size
您可以选择要保留的列
alive_birds <- function(data, date) {
data %>%
dplyr::group_by(ID) %>%
dplyr::mutate(last_seen = as.Date(max(Date))) %>%
dplyr::filter(last_seen > date - lubridate::years(1)) %>%
dplyr::arrange(ID, desc(Date)) %>%
dplyr::select(ID,last_seen, sex) %>%
dplyr::distinct(ID, .keep_all = TRUE)
}
alive_birds(BIRD_data, as.Date('2020-09-30'))
活鸟%
dplyr::分组依据(ID)%>%
dplyr::mutate(最后一次看到=as.Date(max(Date)))%>%
dplyr::过滤器(上次查看>日期-润滑油::年(1))%>%
dplyr::排列(ID,描述(日期))%>%
dplyr::选择(ID,最后一次看到,性别)%>%
dplyr::distinct(ID,.keep_all=TRUE)
}
活鸟(鸟类数据,截至日期('2020-09-30'))
您可以选择要保留的列
alive_birds <- function(data, date) {
data %>%
dplyr::group_by(ID) %>%
dplyr::mutate(last_seen = as.Date(max(Date))) %>%
dplyr::filter(last_seen > date - lubridate::years(1)) %>%
dplyr::arrange(ID, desc(Date)) %>%
dplyr::select(ID,last_seen, sex) %>%
dplyr::distinct(ID, .keep_all = TRUE)
}
alive_birds(BIRD_data, as.Date('2020-09-30'))
活鸟%
dplyr::分组依据(ID)%>%
dplyr::mutate(最后一次看到=as.Date(max(Date)))%>%
dplyr::过滤器(上次查看>日期-润滑油::年(1))%>%
dplyr::排列(ID,描述(日期))%>%
dplyr::选择(ID,最后一次看到,性别)%>%
dplyr::distinct(ID,.keep_all=TRUE)
}
活鸟(鸟类数据,截至日期('2020-09-30'))
是的,就像你一样,我认为这是解决方案。但这样做,你就是在要求“每一次最后的约会都会有不同性别的人”。因此,它没有给我一个包含独特个体和他们最后一次见面日期的列表(389行),而是给了我一个包含745行的列表。例如,如果“FB37314”被视为J,然后被视为M,它将给我两行,但最后看到的日期相同。@请尝试更新的答案。每个人应该只给你一行。好吧。我不明白,但是我忘记了dplyr::
在arrange
前面,也许这就是问题所在。我现在已经更正了。它安排了行。因此,在这里,它将根据日期安排每个ID
,以便最新信息位于顶部。是的……它保留最新的性信息。是的,就像你一样,我认为这是解决方案。但这样做,你就是在要求“每一次最后的约会都会有不同性别的人”。因此,它没有给我一个包含独特个体和他们最后一次见面日期的列表(389行),而是给了我一个包含745行的列表。例如,如果“FB37314”被视为J,然后被视为M,它将给我两行,但最后看到的日期相同。@请尝试更新的答案。每个人应该只给你一行。好吧。我不明白,但是我忘记了dplyr::
在arrange
前面,也许这就是问题所在。我现在已经更正了。它安排了行。因此,在这里,它将根据日期排列每个ID
,以便最新信息位于顶部。是的……它保留最新的性别
信息。