R从日期时间开始提取日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R从日期时间开始提取日期相关的知识,希望对你有一定的参考价值。

嗨,我只需要保留每个日期的日期:

df<-data.frame(x=c("2014-07-24 00:00:00", 
"2014-07-24 00:00:00", "2014-07-11", "2014-07-11" ,"2014-07-16" ,"2014-07-14"))
as.Date(df$x,format="%Y-%m-%d" )

我试过这个:

df$dia<-as.Date(df$x, format="%d")

但我得到一个完整的约会,与原来的不同。

我不想安装另一个包来执行此操作。我该如何解决?谢谢

答案

你在找format吗?

format(as.Date(df$x,format="%Y-%m-%d"), "%d")
# [1] "24" "24" "11" "11" "16" "14"
另一答案

如果您的日期始终处于相同的位置和格式,则您可以使用substr()进行另一种选择。下面的调用从第9个位置开始 - 当天的开始 - 并以第10个结束 - 当天的第二个数字结束。

substr(x = df$x, start = 9, stop = 10)
[1] "24" "24" "11" "11" "16" "14"
另一答案

由于您的结果不再是日期,您可以使用gsub

gsub("(.*)[-]", "", df$x)
# [1] "24" "24" "11" "11" "16" "14"
另一答案

尝试:

sapply(strsplit(as.character(df$x), '-'), function(x) x[3])
[1] "24" "24" "11" "11" "16" "14"
另一答案

您可以简单地使用工作日(df $ date)从日期中提取星期几。仅确保列的类型为Date或使用as.Date()进行转换。希望这可以帮助 :)

另一答案

如果您已将变量的类设置为日期类型,请尝试

df$dia <- format(df$x, "%d")

否则,在as.date函数中嵌套format函数

以上是关于R从日期时间开始提取日期的主要内容,如果未能解决你的问题,请参考以下文章

R从日期时间中提取日期

如何从R中具有月份名称的时间戳中提取日期

试图从时间戳 R 中提取日期

从 r 中的日期中仅提取季度

从字符串中提取数字作为R中的数字或日期

如何从片段中调用 getSupportFragmentManager()?