我在R中有一个包含多个列的数据框。我复制粘贴下面的一列。列类型在数据框中是整数,+ 00.00表示UTC时间。
D-T-Z
06/04/2018 16:30:01 +00:00
06/05/2018 20:15:00 +00:00
06/05/2018 12:45:34 +00:00
06/05/2018 20:15:00 +00:00
当我使用库(doBy)和命令Mach1 [firstobs(Mach1 [,16]),]时。我得到了下面的结果
D-T-Z
06/04/2018 16:30:01 +00:00
06/05/2018 20:15:00 +00:00
06/05/2018 12:45:34 +00:00
我想过滤数据框并获取不同日期的单个记录。因为时间不同,它将返回06/05/2018的两条记录,而我只想要返回一条记录。什么时候归来都没关系。有没有其他方法可以实现这一目标?
如果数据框有两列,该怎么办?
date Hour
1 2018-06-04 325.2 2 2018-06-05 329.5 3 2018-06-06 329.7 4 2018-06-07 329.9 5 2018-06-08 333.2 6 2018-06-13 356.0 7 2018-06-14 364.8 8 2018-06-15 372.6 9 2018-06-15 381.9 10 2018-06-21 383.3 11 2018-06-22 394.5
答案 0 :(得分:0)
您可以使用lubridate
:
library(tidyverse)
library(lubridate)
data_frame(date = c("06/04/2018", "06/05/2018", "06/05/2018", "06/05/2018"), time = c("16:30:01", "20:15:00", "12:45:34", "20:15:00"), zone = c("+00:00", "+00:00", "+00:00", "+00:00")) -> x
# all data in one column
x %>% select(date) %>% unique()
# data in separate columns using lubridate
apply(x, 1, function(x) paste(x, collapse = " ")) %>% dmy_hms -> y
y %>% as_date() %>% data_frame() %>% unique()
输出1:
# A tibble: 2 x 1
date
<chr>
1 06/04/2018
2 06/05/2018
输出2:
# A tibble: 2 x 1
.
<date>
1 2018-04-06
2 2018-05-06