我有一个dataframe
格式的R格式,表示每个人的不同访问日期(visitdate1, visitdate2, visitdate3
等)。我正在尝试查找每个人的最新日期并将其保存为新列,但这似乎不起作用。
我检查了dataframe
的类,并且每个visitdate
已经被识别为Date,所以我不知道为什么代码不起作用。
这是我尝试的代码:
df1$latestdate <- pmax(as_date(df1$visitdate1), as_date(df1$visitdate2),
as_date(df1$visitdate3))
我得到的错误如下:
as.Date.default(x,...)中的错误: 不知道如何将“ x”转换为“日期”类
问题是我要R查找每行的最大日期值,而不要转换任何日期(因为它已经是日期)。
但是,即使我将as_date
排除在代码之外,我也会收到错误消息:
替换有0行,数据有120行。
任何有帮助的见解?提前致谢!顺便说一句,我是R的新手。:)
答案 0 :(得分:1)
下面,我提供一个示例,用于猜测您的数据的外观。 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)