在包含每行最大日期的数据框上创建新列

时间:2015-12-15 00:58:22

标签: r

我目前正在处理生命表,我有一个包含19列的数据集。第5列到第19列包含日期 对于每个人的出生。我想创建一个新变量(第20列),其中包含第5到第19列每行的最新出生(最后一次出生)。数据条目属于因子类。

以下是我的数据的样子

ID_I        Sex     BirthDate   DeathDate   Parturition1    Parturition2    
501093007   Female  1813-01-14  1859-09-29  1847-11-16      1850-05-17
400707003   Female  1813-01-15  1888-04-14  1844-10-07      1845-10-17
100344004   Female  1813-02-06  1897-05-07  1835-03-09      1837-01-03

我已尝试过其中一个答案中建议的代码;

df[, "max"] <- apply(df[, 5:19], 1, max)

但是我得到变量df $ max的所有行的总体最大值。可能是因为我的日期条目不是数字或字符吗?

2 个答案:

答案 0 :(得分:0)

你几乎就在那里,这应该有效:

df$max.date <- apply(df[,5:19],1,max)

答案 1 :(得分:0)

根据示例数据,转换为“日期”类

后,我们也可以使用pmax
df1$max.date <- do.call(pmax,lapply(df1[3:ncol(df1)], as.Date))
df1$max.date
#[1] "1859-09-29" "1888-04-14" "1897-05-07"

注意:将原始数据集中的3更改为53:ncol(df1))。

相关问题