有没有办法通过tidyverse或其他方法从R中的日期数据中提取年份和月份?
如果有没有办法通过tidyverse或其他方法从R中的日期数据中提取年份和月份?,r,zoo,tidyverse,R,Zoo,Tidyverse,如果data.frame包含20100101,2010-01-01,2010/01/01,三种类型的样式时间数据,我如何获得“%Y-%m”或2010年1月这样的列 谢谢@akrun,它对我有用 # `XXXX-XX` ```{r} library(tidyverse) df <- data_frame( x = "20100101" ) df %>% mutate(yearMon = format(lubridate::ymd(x), "%Y-%m")) ``` # `
data.frame
包含20100101
,2010-01-01
,2010/01/01
,三种类型的样式时间数据,我如何获得“%Y-%m”或2010年1月
这样的列
谢谢@akrun,它对我有用
# `XXXX-XX`
```{r}
library(tidyverse)
df <- data_frame(
x = "20100101"
)
df %>%
mutate(yearMon = format(lubridate::ymd(x), "%Y-%m"))
```
# `Jan XXXX`
```{r}
df %>%
mutate(yearMon = zoo::as.yearmon(lubridate::ymd(x)))
```
#`XXXX-XX`
```{r}
图书馆(tidyverse)
df%
mutate(yearMon=格式(lubridate::ymd(x),%Y-%m”))
```
#”“一月XXXX日`
```{r}
df%>%
突变(yearMon=zoo::as.yearMon(lubridate::ymd(x)))
```
因为它们都跟在年、月、日之后,所以我们可以使用ymd
library(tidyverse)
df1 %>%
mutate(yearMon = format(ymd(Date), "%Y-%m"))
#if we need format "Jan 2010"
#mutate(yearMon = format(ymd(Date), "%b-%Y"))
另一个选项是yearmon
fromzoo
library(zoo)
df1 %>%
mutate(yearMon = as.yearmon(ymd(Date)))
因为它们都跟在年、月、日之后,所以我们可以使用
ymd
library(tidyverse)
df1 %>%
mutate(yearMon = format(ymd(Date), "%Y-%m"))
#if we need format "Jan 2010"
#mutate(yearMon = format(ymd(Date), "%b-%Y"))
另一个选项是yearmon
fromzoo
library(zoo)
df1 %>%
mutate(yearMon = as.yearmon(ymd(Date)))
我们可以随时使用
库,因为没有统一的日期格式
library(anytime)
format(anytime(x), format = "%b %Y")
#[1] "Jan 10" "Jan 10" "Jan 10"
或
数据
x <- c('20100101', '2010-01-01', '2010/01/01')
x我们可以随时使用库,因为没有一种一致的日期格式
library(anytime)
format(anytime(x), format = "%b %Y")
#[1] "Jan 10" "Jan 10" "Jan 10"
或
数据
x <- c('20100101', '2010-01-01', '2010/01/01')
x如果您只是有不同类型的分隔符,则将它们去掉并格式化-格式(如.Date(gsub(“[^0-9]”),x,format=“%Y%m%d”),“%b%Y”)
如果您只是有不同类型的分隔符,则将它们去掉并格式化-格式(如.Date(gsub(“[^0-9]”,x),format=“%Y%m%d”),“%b%Y”)
yearmon解决方案可以是:as.yearmon(gsub(“\\D”,Date),%Y%m%D”)
在这种情况下不需要润滑脂。yearmon解决方案可以是:as.yearmon(gsub(\\D,”,Date),%Y%m%D”)
在这种情况下不需要润滑脂。