使用列中的信息在 r 中创建新列

using information in a column to create a new column in r

我有这样一个数据集:

record <- c("2000-01-22","2001-01-22","2002-01-22")
brand <- c("blue","red","yellow")
sale <- c("5","42","54")
mydf <- data.frame(record,brand,sale)
mydf

      record  brand sale
1 2000-01-22   blue    5
2 2001-01-22    red   42
3 2002-01-22 yellow   54

我想创建一个名为 "year" 的新列以仅包含不同的年份,例如:

   record     brand sale  year
1 2000-01-22   blue    5  2000
2 2001-01-22    red   42  2001
3 2002-01-22 yellow   54  2002

非常感谢您的帮助。

巴兹

你可以用 lubridate::year:

library(lubridate)

mydf$year <- year(as.Date(mydf$record))
> mydf
      record  brand sale year
1 2000-01-22   blue    5 2000
2 2001-01-22    red   42 2001
3 2002-01-22 yellow   54 2002

不使用其他包。 怎么样

mydf$year <- as.numeric(substr(mydf$record,1,4))
> mydf
      record  brand sale year
1 2000-01-22   blue    5 2000
2 2001-01-22    red   42 2001
3 2002-01-22 yellow   54 2002