问题描述
我有一个大数据框 (d),其中日期作为字符类。我只想提取年份,但首先,我一直在尝试先转换为日期,然后提取年份。但是我不能从字符更改日期。
所以我有两个问题 - 如何将此字符日期更改为数字日期,然后如何提取年份?
我正在寻找最简单的方法,以便我可以使用其他数据集重新创建。
site<dbl> date<chr> conc<dbl>
2001 2/1/1980 0.006521739
2001 2/2/1980 0.008260870
2001 2/3/1980 0.005652174
2001 2/4/1980 0.007826087
2001 2/5/1980 0.001000000
2001 2/7/1980 0.002222222
2001 2/8/1980 0.008666667
2001 2/11/1980 0.017777778
2001 2/12/1980 0.016250000
2001 2/13/1980 0.015416667
这是我尝试过的:
d2 <- as.Date(d$date,format = "%m/%d/%Y)
我收到此错误消息:
错误:不完整的表达式:d2
解决方法
使用dplyr
:
library(dplyr)
d <- read.table(text="
site date conc
2001 2/1/1980 0.006521739
2001 2/2/1980 0.008260870
2001 2/3/1980 0.005652174
2001 2/4/1980 0.007826087
2001 2/5/1980 0.001000000
2001 2/7/1980 0.002222222
2001 2/8/1980 0.008666667
2001 2/11/1980 0.017777778
2001 2/12/1980 0.016250000
2001 2/13/1980 0.015416667 ",header=T)
d %>% mutate(date = as.Date(date,'%m/%d/%Y'),year = year(as.Date(date,'%m/%d/%Y')))
site date conc year
1 2001 1980-02-01 0.006521739 1980
2 2001 1980-02-02 0.008260870 1980
3 2001 1980-02-03 0.005652174 1980
4 2001 1980-02-04 0.007826087 1980
5 2001 1980-02-05 0.001000000 1980
6 2001 1980-02-07 0.002222222 1980
7 2001 1980-02-08 0.008666667 1980
8 2001 1980-02-11 0.017777778 1980
9 2001 1980-02-12 0.016250000 1980
10 2001 1980-02-13 0.015416667 1980