我是R的新手!
我在名为 crimedata
的数据集中有以下列 CMPLNT_FR_DTCMPLNT_FR_DT
12/31/2015
01/23/2009
10/04/2010
05/31/2015
我需要更改列值,以便日期只包含年份,例如:
CMPLNT_FR_DT
2015
2009
2010
2015
我尝试了解决方案 Extract year from date
但我的错误返回为
format(as.Date(df$CMPLNT_FR_DT, format="%m/%d/%Y"),"%Y")
Error in df$CMPLNT_FR_DT : object of type 'closure' is not subsettable
我不确定我做错了什么。我真的很感谢你的帮助!
答案 0 :(得分:3)
如果您有一个名为crimedata
的数据集,而是使用df
(当df
未定义为变量时,即"df" %in% ls()
返回[1] FALSE
),你会得到错误Error in df$CMPLNT_FR_DT : object of type 'closure' is not subsettable
。这是因为df()
是stats
包中的函数(这就是为什么使用df
作为变量名称可能不是一个好习惯)。
如果您将其更改为format(as.Date(crimedata$CMPLNT_FR_DT, format="%m/%d/%Y"),"%Y")
,则会有效。
还有另一个解决方案,使用包lubridate
,它将年份作为数字返回,这可能很有用:
library(lubridate)
year(as.Date(crimedata$CMPLNT_FR_DT, format = "%m/%d/%Y"))