我目前正在处理生命表,我有一个包含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的所有行的总体最大值。可能是因为我的日期条目不是数字或字符吗?
答案 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
更改为5
(3:ncol(df1)
)。