Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从列中的日期提取年份_R - Fatal编程技术网

R 从列中的日期提取年份

R 从列中的日期提取年份,r,R,我真的是个新手 我在一个名为crimedata的数据集中有以下列CMPLNT_FR_DT 我需要更改列值,以便日期仅包括年份,如: CMPLNT_FR_DT 2015 2009 2010 2015 我试着从他们那里得到解决方案 但我的错误返回为 format(as.Date(df$CMPLNT_FR_DT, format="%m/%d/%Y"),"%Y") Error in df$CMPLNT_FR_DT : object of type 'closure' is not subsetta

我真的是个新手

我在一个名为crimedata的数据集中有以下列CMPLNT_FR_DT

我需要更改列值,以便日期仅包括年份,如:

CMPLNT_FR_DT
2015
2009
2010
2015
我试着从他们那里得到解决方案

但我的错误返回为

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

我不确定我做错了什么。我非常感谢你的帮助

如果您有一个名为
crimedata
的数据集,并改用
df
(当
df
未定义为变量时,即
“df”%in%ls()
返回
[1]FALSE
),您将得到df$CMPLNT\u FR\u DT中的错误
错误:“closure”类型的对象不可再附加
。这是因为
df()

如果您将其更改为
格式(as.Date(crimedata$CMPLNT\u FR\u DT,format=“%m/%d/%Y”),“%Y”)
它将工作

还有另一个解决方案,使用包lubridate,它以数字形式返回年份,这可能很有用:

library(lubridate)
year(as.Date(crimedata$CMPLNT_FR_DT, format = "%m/%d/%Y"))

如果您有一个名为
crimedata
的数据集,并改用
df
(当
df
未定义为变量时,即
“df”%in%ls()
返回
[1]FALSE
),您将得到df$CMPLNT\u FR\u DT中的错误
错误:“closure”类型的对象不可子集
。这是因为
df()

如果您将其更改为
格式(as.Date(crimedata$CMPLNT\u FR\u DT,format=“%m/%d/%Y”),“%Y”)
它将工作

还有另一个解决方案,使用包lubridate,它以数字形式返回年份,这可能很有用:

library(lubridate)
year(as.Date(crimedata$CMPLNT_FR_DT, format = "%m/%d/%Y"))

格式(截至日期('12/31/2015',格式='%m/%d/%Y'),'%Y')
有效fine@Sotos我知道这可能行得通,但我正在尝试格式化整个专栏,这不重要。试试这种
df
格式(如.Date('12/31/2015',格式='%m/%d/%Y'),'%Y')
fine@Sotos我知道这可能行得通,但我正在尝试格式化整个专栏,这不重要。试试这个
df,非常感谢!我现在明白我做错了什么。有没有办法根据原始数据集中的年份来修正整列值?你确定吗?尝试
df我添加了一行来进一步解释我的观点。当然,如果您定义了一个数据帧
df
,它就会工作。然而,错误来自于未定义的df
df
。如果未定义,他们为什么要调用它?没有道理。这个问题的提问方式表明,所构建的数据名为
df
。问题中说:“我在一个名为crimedata的数据集中有以下列CMPLNT\u FR\u DT”。非常感谢!我现在明白我做错了什么。有没有办法根据原始数据集中的年份来修正整列值?你确定吗?尝试
df我添加了一行来进一步解释我的观点。当然,如果您定义了一个数据帧
df
,它就会工作。然而,错误来自于未定义的df
df
。如果未定义,他们为什么要调用它?没有道理。这个问题的提问方式表明,所构建的数据名为
df
。问题中说:“我在一个名为crimedata的数据集中有以下列CMPLNT\u FR\u DT”。