Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R函数检索个人最后看到的信息_R - Fatal编程技术网

R函数检索个人最后看到的信息

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

我有一个数据集,包含2015年至2020年间每天对个人的观察结果。我有一个函数,它给我一个从所选日期(今年被看到的个人)开始的“假定活着”列表,以及他们的ID和最后一次看到的日期

##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
,以便最新信息位于顶部。是的……它保留最新的
性别
信息。