[R] Extract year from date
Mark Sharp
msharp at txbiomed.org
Sun Mar 8 21:45:08 CET 2015
Make the question reproducible (I used dput after getting the data into a dataframe).
You need to provide a date of origin for the as.Date function.
Try lubridate package.
library(lubridate)
wells <- structure(list(ID = structure(c(3L, 3L, 2L, 1L, 3L, 2L, 3L, 1L,
1L, 2L, 3L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L), .Label = c("BC-0002",
"BC-0003", "BC-0004"), class = "factor"), Date = c(41163L, 41255L,
41345L, 41351L, 41355L, 41438L, 41438L, 41443L, 41521L, 41522L,
41522L, 41627L, 41627L, 41634L, 41703L, 41703L, 41710L, 41795L,
41795L, 41801L, 41905L, 41905L, 41906L), DepthtoWater_bgs = c(260.6,
261.65, 166.58, 317.85, 262.15, 167.55, 265.45, 317.25, 321.25,
168.65, 266.15, 168.95, 265.25, 312.31, 169.25, 265.05, 313.01,
168.85, 266.95, 330.41, 169.75, 267.75, 321.01), test = 3:25,
test2 = 1:23), .Names = c("ID", "Date", "DepthtoWater_bgs",
"test", "test2"), class = "data.frame", row.names = c("1", "2",
"3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14",
"15", "16", "17", "18", "19", "20", "21", "22", "23"))
wells$year <- year(as.Date(wells$Date, origin = '1900-1-1'))
head(wells$year)
Mark
R. Mark Sharp, Ph.D.
Director of Primate Records Database
Southwest National Primate Research Center
Texas Biomedical Research Institute
P.O. Box 760549
San Antonio, TX 78245-0549
Telephone: (210)258-9476
e-mail: msharp at TxBiomed.org
> On Mar 8, 2015, at 12:50 AM, Steve Archambault <archstevej at gmail.com> wrote:
>
> Hi all,
>
> I am trying in vain to create a new object "Year" in my data frame from
> existing Date data. I have tried many different approaches, but can't seem
> to get it to work. Here is an example of some code I tried.
>
> date1<- as.Date(wells$Date,"%m/%d/%Y")
> wells$year<-as.numeric(format(date1, "%Y"))
>
> I am starting with data that looks like this.
>
> ID Date DepthtoWater_bgs test test2
> 1 BC-0004 41163 260.60 3 1
> 2 BC-0004 41255 261.65 4 2
> 3 BC-0003 41345 166.58 5 3
> 4 BC-0002 41351 317.85 6 4
> 5 BC-0004 41355 262.15 7 5
> 6 BC-0003 41438 167.55 8 6
> 7 BC-0004 41438 265.45 9 7
> 8 BC-0002 41443 317.25 10 8
> 9 BC-0002 41521 321.25 11 9
> 10 BC-0003 41522 168.65 12 10
> 11 BC-0004 41522 266.15 13 11
> 12 BC-0003 41627 168.95 14 12
> 13 BC-0004 41627 265.25 15 13
> 14 BC-0002 41634 312.31 16 14
> 15 BC-0003 41703 169.25 17 15
> 16 BC-0004 41703 265.05 18 16
> 17 BC-0002 41710 313.01 19 17
> 18 BC-0003 41795 168.85 20 18
> 19 BC-0004 41795 266.95 21 19
> 20 BC-0002 41801 330.41 22 20
> 21 BC-0003 41905 169.75 23 21
> 22 BC-0004 41905 267.75 24 22
> 23 BC-0002 41906 321.01 25 23
>
> Any help would be greatly appreciated!
>
> -Steve
> Sent from my iPhone
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list