R - 如何从日期列中选择最早的日期列?

标签 r date min

我想从多个日期列中获取每行中具有最早日期的列。

我的数据集是这样的。
df = data.frame( x_date = as.Date( c("2016-1-3", "2016-3-5", "2016-5-5")) , y_date = as.Date( c("2016-2-2", "2016-3-1", "2016-4-4")), z_date = as.Date(c("2016-3-2", "2016-1-1", "2016-7-1")) ) +---+-----------+------------+-----------+ | | x_date | y_date | z_date | +---+-----------+------------+-----------+ |1 | 2016-01-03 | 2016-02-02 |2016-03-02 | |2 | 2016-03-05 | 2016-03-01 |2016-01-01 | |3 | 2016-05-05 | 2016-04-04 |2016-07-01 | +---+-----------+------------+-----------+
我想得到类似于以下列的内容。
+---+---------------+ | | earliest_date | +---+---------------+ |1 | 2016-01-03 | |2 | 2016-01-01 | |3 | 2016-04-04 | +---+---------------+
这是我的代码,但它从整个列和行中输出最早的日期....
library(dplyr) df %>% dplyr::mutate(earliest_date = min(x_date, y_date, z_date))

最佳答案

一种选择是 pmin

df %>% 
   mutate(earliest_date = pmin(x_date, y_date, z_date))
#    x_date     y_date     z_date   earliest_date
#1 2016-01-03 2016-02-02 2016-03-02    2016-01-03
#2 2016-03-05 2016-03-01 2016-01-01    2016-01-01
#3 2016-05-05 2016-04-04 2016-07-01    2016-04-04

如果我们只需要单列,那么 transmute是选项
df %>%
    transmute(earliest_date = pmin(x_date, y_date,z_date))

关于R - 如何从日期列中选择最早的日期列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39097867/

相关文章:

PHP计算人的当前年龄

mysql - 如何从 union all join 查询中删除重复项

php - 从具有多个关系的其他表中获取 min()

r - 将大括号 {} 替换为引号 "

r - 如何强制 R 使用指定的因子水平作为回归中的引用?

r - 如何在 R 中有条件地删除行?

string - 如何在dart中使用关系运算符比较日期?

java - 我如何反序列化字符串 Json Date?

r - 如何在第一列中只有最小元素的矩阵中查找行?

R中的行矩阵乘法