Альтернативные функции which.max и which.min при выборе строк - PullRequest
0 голосов
/ 04 августа 2020
smokstatus <- 
        matrix(c(1,'female','Smoker',230,1,'female','Ex-smoker',25,2,'male','Never smoked',45,3,'male','Smoker',309,3,'male','Non-smoker',45), ncol=4,byrow=TRUE))
colnames(smokstatus) <- c("idcode","gender","smokstatus","days")
rownames(smokstatus) <- c("1","2","3","4","5")
smokstatus <- data.frame(smokstatus)

У меня есть фрейм данных, как указано выше. Идентификационный код однозначно идентифицирует каждого человека, и каждый человек имеет по крайней мере один статус курения (курильщик, бывший курильщик или никогда не курил). Я хочу определить статус курения, наиболее близкий к определенной дате (т.е. наименьшее число для каждого идентификационного кода), обозначенный столбцом дней.

Это то, что я пробовал:

smokstatus <-
        smokstatus %>%
        group_by(idcode) %>%
        slice(which.max(days))

Хотя это работает для примера выше, это не работает для моей базы данных. Код работает, но не обрабатывается.

Есть ли альтернатива which.min и which.max, которую я могу использовать? Спасибо!

...