этот вопрос довольно специфичен, я думаю.
Я ищу R-эквивалент функции Stata egen, в частности
egen max BY varlist.
В моей таблице данных у меня есть столбец с идентификатором
ID <- c(1,1,2,2,3,4,5,6,6)
столбец с годом наблюдения
year <- c(2000,2000,2001,2002,2002,2003,2004,2004,2004)
год и ID не уникальны, потому что может быть больше наблюдений за один год.
Наконец-то у меня есть столбец с именами
names <- c("Mark",NA,"John","John",NA,"Sarah","Julia",NA,NA).
Прежде всего я хочу создать пустышку, равную 1, если имя не NA, и я решил
dummy <- ifelse(!is.na(names),1,0)
Затем я хочу, чтобы R возвратил максимум фиктивного значения на основе идентификатора и года, который в Stata будет
egen MAX = max(dummy), by(ID year)
На практике я хочу, чтобы R возвращал 0, если имена равны NA для всех строк с одинаковым идентификатором и годом. Таким образом, я бы получил (1,1,1,1,0,1,1,0,0), и я могу приступить к отбрасыванию строк 5,7,8.
Спасибо!