将整数列转换为年份

时间:2018-03-26 01:03:07

标签: r

我是R的新手,所以请不要讨厌。我想将下面的整数列转换为年份列

转换此: Date: int 189507 189508 189509 ...

对此: Year: int 1895 1895 1895

代码

library(tidyverse)
library(lubridate)

df <- read_csv("noaa-central-park.csv")
year <- df$Date 
df <- transform(df, year = as.Date(as.character(year), "%Y"))
tempByYears <- group_by(df, year)

问题:我仍然会看到如下所示的年 - 月 - 日格式。怎么解决?

enter image description here

来源:Stackoverflow questionsgroup_by() video

1 个答案:

答案 0 :(得分:1)

我假设Date中的值为年+月,格式为%Y%m。在这种情况下,最好不要将它读入R整数。例如,您可以指定Date为字符。

我使用df1作为数据框变量名称,因为df可能会导致与同名函数混淆。

df1 <- read_csv("noaa-central-park.csv", 
    col_types = cols(Date = col_character()))

现在假设每个Date以4位数年份开头,获取year的最简单方法是提取前4个字符并转换为数字:

df1 <- df1 %>%
  mutate(year = as.numeric(substring(Date, 1, 4))