使用列中的信息在 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
我有这样一个数据集:
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