我有一个如下所示的数据框列:
loco
2018-11-30
2018-10-25
2015-12-10
2020-1-10
2013-2-15
1999-8-17
Run Code Online (Sandbox Code Playgroud)
我只想找到最大日期和最小日期。这是我迄今为止尝试过的
print(min(as.character(as.numeric(table3$loco)), na.rm=TRUE))
max(table3$loco, na.rm=true)
max(as.Date('2016-1-1'))
floor(time(table3$loco)[which.min(table3$loco)])
loco %>%
mutate(earliest_date = pmin(table3$loco))
table3$loco[order(format(as.date(table3$loco), '%m%d%y'))
[length(dates)]]
min(as.Date(table3$loco))
lapply(table3$loco, max)
Run Code Online (Sandbox Code Playgroud)
样本数据:
"2018-11-30 07:21:32.605", "2018-11-30 07:21:42.551", "2018-11-30
07:21:42.702",
"2018-11-30 07:21:42.827", "2018-11-30 07:35:02.107", "2018-11-30
07:35:05.309",
"2018-11-30 07:37:14.794", "2018-11-30 07:37:36.597", "2018-11-30
07:38:51.712",
"2018-11-30 07:41:16.125", "2018-11-30 07:41:28.419", "2018-11-30
07:41:57.649",
"2018-11-30 07:41:57.931", "2018-11-30 07:47:36.917", "2018-11-30
07:47:45.759",
"2018-11-30 07:47:55.729", "2018-11-30 07:49:43.611", "2018-11-30
07:49:46.486",
"2018-11-30 07:49:55.789", "2018-11-30 07:52:29.743", "2018-11-30
07:53:06.841",
"2018-11-30 07:53:47.983", "2018-11-30 07:53:57.526", "2018-11-30
07:54:19.956",
"2018-11-30 07:54:28.345", "2018-11-30 07:54:38.075", "2018-11-30
07:56:43.328",
"2018-11-30 07:56:46.107", "2018-11-30 08:04:57.808", "2018-11-30
08:04:57.917",
"2018-11-30 08:04:58.027", "2018-11-30 08:06:03.055", "2018-11-30
08:06:15.762",
"2018-11-30 08:06:15.877", "2018-11-30 08:06:15.994", "2018-11-30
08:07:33.356",
"2018-11-30 08:07:33.576", "2018-11-30 08:07:33.798", "2018-11-30
08:07:33.852",
"2018-11-30 08:09:15.891", "2018-11-30 08:09:39.825", "2018-11-30
08:09:52.997",
Run Code Online (Sandbox Code Playgroud)
使用lubridate包的方法。
拳头,让它可重现:
dates <- data.frame(
loco = c("2018-11-30", "2018-10-25", "2015-12-10", "2020-1-10", "2013-2-15", "1999-8-17")
)
Run Code Online (Sandbox Code Playgroud)
有了数据,我们可以轻松地执行两个必要的步骤:转换为日期格式并汇总您想要的信息:
# load packages
library(lubridate)
library(dplyr)
dates %>%
# transform to date format with lubridate
mutate(loco = ymd(loco)) %>%
# find min and max
summarise(min = min(loco),
max = max(loco))
min max
1 1999-08-17 2020-01-10
Run Code Online (Sandbox Code Playgroud)
该lubridate::ymd()函数的意思是“年-月-日”。
除此之外,您还可以使用相同的方法,例如,使用lubridate, 来查找年份最小值/最大值。
dates %>%
# transform to date format with lubridate
mutate(loco = ymd(loco)) %>%
# find years min and max
summarise(min = min(year(loco)),
max = max(year(loco)))
min max
1 1999 2020
Run Code Online (Sandbox Code Playgroud)
这是一个非常简单的。
将列转换为类"Date":
df1$loco <- as.Date(df1$loco)
Run Code Online (Sandbox Code Playgroud)
然后尝试任何一个
min(df1$loco, na.rm = TRUE)
#[1] "1999-08-17"
max(df1$loco, na.rm = TRUE)
#[1] "2020-01-10"
range(df1$loco, na.rm = TRUE)
#[1] "1999-08-17" "2020-01-10"
Run Code Online (Sandbox Code Playgroud)
数据。
df1 <- read.table(text = "
loco
2018-11-30
2018-10-25
2015-12-10
2020-1-10
2013-2-15
1999-8-17
", header = TRUE)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22969 次 |
| 最近记录: |