R 拆分字符串以提取日期和时间
我在TIBLE的一列中有一个字符串,看起来像是2019年11月1日上午8:00:41 CDT 我想为上面提到的列、日期和时间创建新的列 做这件事的最佳方法是什么?润滑油R 拆分字符串以提取日期和时间,r,date,character,lubridate,R,Date,Character,Lubridate,我在TIBLE的一列中有一个字符串,看起来像是2019年11月1日上午8:00:41 CDT 我想为上面提到的列、日期和时间创建新的列 做这件事的最佳方法是什么?润滑油 Time <- tibble(Call = 1, Date_Time = 'Nov 01, 2019 8:00:41 AM CDT') Time %>% mutate(Date_Time = mdy(`Contact Start Date/Time`)) 时间% 变异(日期\时间=mdy(`Contact
Time <- tibble(Call = 1, Date_Time = 'Nov 01, 2019 8:00:41 AM CDT')
Time %>%
mutate(Date_Time = mdy(`Contact Start Date/Time`))
时间%
变异(日期\时间=mdy(`Contact Start Date/Time`))
我尝试了上面的代码,但是,我的新专栏中没有任何内容,只有“NAs” 1)我们可以使用as.POSIXct
和as.Date
,如图所示。我不确定您当时想要什么,但在下面提供了一个字符串time
library(dplyr)
DF %>% mutate(x = as.POSIXct(x, format = "%b %d, %Y %I:%M:%S %p"),
date = as.Date(x),
time = sub(".* ", "", x))
## x date time
## 1 2019-11-01 08:00:41 2019-11-01 08:00:41
2)chron软件包可以分别表示日期和时间:
library(dplyr)
library(chron)
DF %>%
mutate(x = as.chron(as.character(x), format = "%b %d, %Y %I:%M:%S %p"),
date = dates(x),
time = x - date)
## x date time
## 1 (11/01/19 08:00:41) 11/01/19 08:00:41
注
DF1)我们可以使用as.POSIXct
和as.Date
,如图所示。我不确定您当时想要什么,但在下面提供了一个字符串time
library(dplyr)
DF %>% mutate(x = as.POSIXct(x, format = "%b %d, %Y %I:%M:%S %p"),
date = as.Date(x),
time = sub(".* ", "", x))
## x date time
## 1 2019-11-01 08:00:41 2019-11-01 08:00:41
2)chron软件包可以分别表示日期和时间:
library(dplyr)
library(chron)
DF %>%
mutate(x = as.chron(as.character(x), format = "%b %d, %Y %I:%M:%S %p"),
date = dates(x),
time = x - date)
## x date time
## 1 (11/01/19 08:00:41) 11/01/19 08:00:41
注
DF我们可以使用lubridate
smdy\u-hms
函数将Date\u-Time
转换为POSIXct
格式,然后分别使用as.Date
和format
提取Date和Time
library(dplyr)
library(lubridate)
Time %>%
mutate(Date_Time = mdy_hms(Date_Time),
Date = as.Date(Date_Time),
Time = format(Date_Time, "%T"))
# Call Date_Time Date Time
# <dbl> <dttm> <date> <chr>
#1 1 2019-11-01 08:00:41 2019-11-01 08:00:41
库(dplyr)
图书馆(lubridate)
时间%>%
变异(日期时间=mdy\U hms(日期时间),
日期=截止日期(日期和时间),
时间=格式(日期时间,“%T”))
#通话日期\时间日期时间
#
#1 1 2019-11-01 08:00:41 2019-11-01 08:00:41
我们可以使用lubridate
smdy\u-hms
函数将Date\u-Time
转换为POSIXct
格式,然后分别使用as.Date
和format
提取日期和时间
library(dplyr)
library(lubridate)
Time %>%
mutate(Date_Time = mdy_hms(Date_Time),
Date = as.Date(Date_Time),
Time = format(Date_Time, "%T"))
# Call Date_Time Date Time
# <dbl> <dttm> <date> <chr>
#1 1 2019-11-01 08:00:41 2019-11-01 08:00:41
库(dplyr)
图书馆(lubridate)
时间%>%
变异(日期时间=mdy\U hms(日期时间),
日期=截止日期(日期和时间),
时间=格式(日期时间,“%T”))
#通话日期\时间日期时间
#
#1 1 2019-11-01 08:00:41 2019-11-01 08:00:41
这个社区是最好的。非常感谢。这个社区是最好的。非常感谢。对于你的第二个答案,我得到的是13:00:41,因为我的时间是军事时间下午1:00,而不是8:00,AMI修改了答案,所以请再试一次。显示输出,在这两种情况下,我使用DF
得到8,重复显示在末尾的注释中。时间列的格式为字符。有没有办法让它成为一段时间?基本上,我所做的工作是能够聚合这段时间,这样我就可以得到按日期、人员等分组的平均通话时间。R没有单独的times类,但在chron中有一个times类,它在答案的(2)中使用。你可以取一个时间向量的平均值。这个社区是最好的。非常感谢。这个社区是最好的。非常感谢。对于你的第二个答案,我得到的是13:00:41,因为我的时间是军事时间下午1:00,而不是8:00,AMI修改了答案,所以请再试一次。显示输出,在这两种情况下,我使用DF
得到8,重复显示在末尾的注释中。时间列的格式为字符。有没有办法让它成为一段时间?基本上,我所做的工作是能够聚合这段时间,这样我就可以得到按日期、人员等分组的平均通话时间。R没有单独的times类,但在chron中有一个times类,它在答案的(2)中使用。你可以取一个时间向量的平均值。这个社区是最好的。非常感谢。这个社区是最好的。非常感谢。是和否。这由日期/时间列分隔为两个,但如何将时间列保留为时间?将时间列保留为时间是什么意思?是否作为特定的时间对象类型?添加一个您试图获取的示例将使回答“是”和“否”更容易。这两个选项由日期/时间列分隔为两个,但我如何将时间列保留为时间?什么是将时间列保留为时间?是否作为特定的时间对象类型?添加一个您试图获得的示例将使回答更容易