查找 R 中每行 3 列的最小值
Find MIN value of 3 Columns for Each Row in R
我有一个数据框,如下所示:
ID D1 D2 D3
103 2015-01-15 2014-06-10 2015-04-13
450 NA 2015-10-03 2014-02-02
103 NA NA NA
222 2014-03-03 NA NA
我需要添加名为 "MinDate" 的第 5 列,返回 R 中第 2 列到第 4 列中的三个不同日期的最小值,同时忽略 NA 值(尽管,如果全部为 NA,则返回NA 没问题),例如以下:
ID D1 D2 D3 MinDate
103 2015-01-15 2014-06-10 2015-04-13 2014-06-10
450 NA 2015-10-03 2014-02-02 2014-02-02
103 NA NA NA NA
222 2014-03-03 NA NA 2014-03-03
我可能会构建一个大而讨厌的 ifelse 语句,但我更愿意利用 R 的强大功能和基本功能,...我只是不确定如何。我正在接近使用类似的东西:
df$MinDate <- apply(df, 1, min, na.rm = TRUE)
但它包括 ID 列。
我想我明白了:
df$MinDate <- apply(df[,c(2:4)], 1, min, na.rm = TRUE)
我有一个数据框,如下所示:
ID D1 D2 D3
103 2015-01-15 2014-06-10 2015-04-13
450 NA 2015-10-03 2014-02-02
103 NA NA NA
222 2014-03-03 NA NA
我需要添加名为 "MinDate" 的第 5 列,返回 R 中第 2 列到第 4 列中的三个不同日期的最小值,同时忽略 NA 值(尽管,如果全部为 NA,则返回NA 没问题),例如以下:
ID D1 D2 D3 MinDate
103 2015-01-15 2014-06-10 2015-04-13 2014-06-10
450 NA 2015-10-03 2014-02-02 2014-02-02
103 NA NA NA NA
222 2014-03-03 NA NA 2014-03-03
我可能会构建一个大而讨厌的 ifelse 语句,但我更愿意利用 R 的强大功能和基本功能,...我只是不确定如何。我正在接近使用类似的东西:
df$MinDate <- apply(df, 1, min, na.rm = TRUE)
但它包括 ID 列。
我想我明白了:
df$MinDate <- apply(df[,c(2:4)], 1, min, na.rm = TRUE)