Нахождение максимального или минимального значения даты для каждого человека - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть dataframe в широком формате в R, обозначающий разные даты посещения для каждого человека (visitdate1, visitdate2, visitdate3 и т. Д.). Я пытаюсь найти последнюю дату для каждого человека и сохранить ее как новый столбец, но, похоже, это не работает.

Я проверил класс dataframe, и каждый visitdate уже распознан как Дата, поэтому я не знаю, почему код не работает.

Это код, который я пробовал:

df1$latestdate <- pmax(as_date(df1$visitdate1), as_date(df1$visitdate2), 
as_date(df1$visitdate3))

Я получаю следующую ошибку:

Ошибка в as.Date.default (x, ...): не знаю, как преобразовать x в класс «Date»

Проблема в том, что я прошу R найти максимальное значение даты в строке, а не преобразовыватьлюбая дата (так как это уже дата). Однако даже когда я оставляю as_date вне кода, я получаю сообщение об ошибке:

замена имеет 0 строк, данные имеют 120.

Любое понимание того, чтоможет помочь? Заранее спасибо! Кстати, я новичок в Р. :) 1025 *

1 Ответ

1 голос
/ 06 ноября 2019

Ниже я привожу пример, как угадать, как выглядят ваши данные. pmax, возможно, не самая лучшая вещь для этого.

DATES = seq(as.Date('2011-01-01'),as.Date('2017-01-01'),"months") 

df = data.frame(id=1:10,
visitdate1 = sample(DATES,10),
visitdate2 = sample(DATES,10),
visitdate3 = sample(DATES,10)
)
#set columns to find row Max
COLUMNS = c("visitdate1","visitdate2","visitdate3")
df$latestdate = apply(df[,COLUMNS],1,max)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...