我是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)
问题:我仍然会看到如下所示的年 - 月 - 日格式。怎么解决?
答案 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))