Я хотел бы выяснить, кто был самым последним предыдущим владельцем в местоположении за последние два года до текущего владельца. Местоположения называются reflo
(справочное местоположение). Обратите внимание, что не всегда точное совпадение для reflo.x
и reflo
в течение двух лет (поэтому решение, которое позволяет мне добавить дополнительные условия, например, найти следующий ближайший reflo
, было бы очень полезно ).
Условия:
- предыдущий владелец должен был проживать в том же месте (
lifetime_census$reflo==owners$reflo.x[i]
) в течение двух лет после год текущего владельца (lifetime_census$census_year
<= 2 года из <code>owners$spr_census) - , если его нет, тогда присвойте
NA
Предыдущие владельцы (> 20 000) хранятся в наборе данных называется lifetime_census
. Вот пример данных:
id previous_id reflo census_year
16161 5587 -310 2001
17723 5587 -310 2002
19345 5879 -310 2003
16848 5101 Q1 2001
17836 6501 Q1 2002
19439 6501 Q1 2003
21815 6057 Q1 2004
У меня есть owners
набор данных (вот пример):
squirrel_id spr_census reflo.x
6391 2005 Q1
6130 2005 -310
6288 2005 A12
Чтобы проиллюстрировать то, что я пытаюсь для достижения:
squirrel_id spr_census reflo.x previous_owner census_year
6391 2005 Q1 6057 2004
6130 2005 -310 5879 2003
6288 2005 A12 NA NA
В настоящее время я пробовал следующее:
n <- length(owners$squirrel_id)
for(i in 1:n) {
last_owner <- subset(lifetime_census,
life_census$previous_id!=owners$squirrel_id[i] & #previous owner != current owner
lifetime_census$reflo==owners$reflo.x[i] &
lifetime_census$census_year<=owners$spr_census[i]) #owners can be in current or past year
#Put it all together
owners[i,"spring_owner"] <- last_owner$previous_id[i]
}
Это дает мне новый столбец для предыдущего владельца в any прошлый год для reflo.x
, добавив НС после того, как все условия не будут выполнены. Я не могу понять, как ограничить этот поиск последними двумя годами.
Есть идеи? ( Обратите внимание, что не всегда точное совпадение для reflo.x
и reflo
в течение двух лет (поэтому решение, позволяющее мне добавить дополнительные условия, например, найти следующий ближайший reflo
, будет полезно). )