R 拆分数字yyyymmdd列
我有一个数据框,其中包含一个日期列,我引用它作为NM_DATA$DATE。这是一个yyyymmdd形式的数字,我知道,这上面有100个线程 我尝试了我能找到的每一个解决方案,但它们对我不起作用。即将重新加载RStudioR 拆分数字yyyymmdd列,r,date,R,Date,我有一个数据框,其中包含一个日期列,我引用它作为NM_DATA$DATE。这是一个yyyymmdd形式的数字,我知道,这上面有100个线程 我尝试了我能找到的每一个解决方案,但它们对我不起作用。即将重新加载RStudio NM_DATA$DATES <- as.Date(NM_DATA$DATES, "%Y%m%d") 进入: 非常感谢您的帮助 使用具有正确语法的格式选项来处理8位数字: as.Date("20130408",format="%Y%m%d") 然后,
NM_DATA$DATES <- as.Date(NM_DATA$DATES, "%Y%m%d")
进入:
非常感谢您的帮助 使用具有正确语法的格式选项来处理8位数字:
as.Date("20130408",format="%Y%m%d")
然后,使用format()
命令提取所需内容,请参阅
使用具有正确语法的格式选项来处理8位数字:
as.Date("20130408",format="%Y%m%d")
然后,使用format()
命令提取所需内容,请参阅
也许您可以根据您的要求尝试substr
YEAR<-as.numeric(substr(as.numeric(NM_DATA$DATE),1,4))
MONTH<-as.numeric(substr(as.numeric(NM_DATA$DATE),5,6))
YEAR也许您可以根据您的要求尝试substr
YEAR<-as.numeric(substr(as.numeric(NM_DATA$DATE),1,4))
MONTH<-as.numeric(substr(as.numeric(NM_DATA$DATE),5,6))
YEAR为了得到一个完整的答案,我对@Alex的答案进行了充实
as.Date
函数可用于将字符串(或其向量)转换为Date
格式。strtime
(?strtime
)的帮助页面提供了有关日期
对象可以使用的可能格式的一些有价值的信息
在本例中,您希望将NM_数据$DATE
向量转换为日期。格式yyyymmdd由%Y%m%d
表示,因此,如果向量是字符,我们可以将其转换为:
NM_DATA$DATE <- as.Date(NM_DATA$DATE, format='%Y%m%d')
现在,向量是一个日期
对象,我们可以用各种方式对其进行格式化(在?strtime
中概述)。要提取年、月和日数,请执行以下操作:
NM_DATA$YEAR <- format(NM_DATA$DATE, '%Y')
NM_DATA$MONTH <- format(NM_DATA$DATE, '%m')
NM_DATA$DAY <- format(NM_DATA$DATE, '%d')
为了得到一个完整的答案,我对@Alex的答案进行了充实
as.Date
函数可用于将字符串(或其向量)转换为Date
格式。strtime
(?strtime
)的帮助页面提供了有关日期
对象可以使用的可能格式的一些有价值的信息
在本例中,您希望将NM_数据$DATE
向量转换为日期。格式yyyymmdd由%Y%m%d
表示,因此,如果向量是字符,我们可以将其转换为:
NM_DATA$DATE <- as.Date(NM_DATA$DATE, format='%Y%m%d')
现在,向量是一个日期
对象,我们可以用各种方式对其进行格式化(在?strtime
中概述)。要提取年、月和日数,请执行以下操作:
NM_DATA$YEAR <- format(NM_DATA$DATE, '%Y')
NM_DATA$MONTH <- format(NM_DATA$DATE, '%m')
NM_DATA$DAY <- format(NM_DATA$DATE, '%d')
我应该澄清,我将平均每年的数据,但希望能够参考每月的模式在未来。。。。这就是为什么我现在想拆分,但将月份保留在这个数据集库(lubridqte)中;年份(ymd(NM_数据$DATE))
?您能更具体地说明错误吗?NM_DATA$日期在您的搜索时间内,您遇到过还是?:)是的,是的。。。。这两种方法都无法奏效……我应该澄清,我将平均每年的数据,但希望能够在未来参考每月的模式。。。。这就是为什么我现在想拆分,但将月份保留在这个数据集库(lubridqte)中;年份(ymd(NM_数据$DATE))
?您能更具体地说明错误吗?NM_DATA$日期在您的搜索时间内,您遇到过还是?:)是的,是的。。。。两者都无法工作…NM_数据$DATE@user1680636中意外的字符串常量:更具体地说,必须提供tryNM_数据$DATE原点。。。trusted origin=“1970-01-01”返回错误意外符号您的代码中缺少等号作为注释发布在此处format='%Y%m%d'
。如果数据是字符向量,则此方法是可行的,并按说明工作,例如:在NM_data$DATE@user1680636中测试意外的字符串常量:更具体地说,请尝试NM_data$DATE origin必须提供。。。trusted origin=“1970-01-01”返回错误意外符号您的代码中缺少等号作为注释发布在此处<代码>格式=“%Y%m%d”
。如果数据是字符向量,则此方法是可行的,并按说明工作,例如:测试此方法是否有效。。。非常感谢你。。。仍然对日期问题感到困惑。@Yln,我更新了我的问题以便更清楚,但我可能仍然必须走这条路线。。。再次感谢。这可能是您想要的:substr(as.Date(NM_DATA$Date,format=“%Y%m%d”),1,7)或者,我猜是read.fwf(file=textConnection(as.character(NM_DATA$Date)),widths=c(4,2,2),col.names=c(“年”、“月”、“日”),colClasses=“字符”)
。这将起作用。。。非常感谢你。。。仍然对日期问题感到困惑。@Yln,我更新了我的问题以便更清楚,但我可能仍然必须走这条路线。。。再次感谢。这可能是您想要的:substr(as.Date(NM_DATA$Date,format=“%Y%m%d”),1,7)或者,我猜read.fwf(file=textConnection(as.character(NM_DATA$Date)),widths=c(4,2,2),col.names=c(“年”、“月”、“日”),colClasses=“字符”)
…我尝试了NM_DATA$DATE,那么您的DATE
列肯定有一些特点。。。并非所有元素都是yyyymmdd
。是否有些元素只有一年,而不是完整的日期?这也可以解释您的错误不知道如何将'NM_DATA$DATES'转换为类“Date”
,并将问题从“如何将yyyymmdd转换为日期对象”完全更改为“如何将混合日期格式的向量转换为日期对象”。后者的答案是,首先需要将它们转换为字符并执行字符串操作,使它们保持一致。它的行长为145.208。。。。我90%确定它们都是yyyymmdd格式的。。。我要睡觉了。我明天再试一次。再次感谢您的帮助尝试unique(nchar(NM\u数据$DATES))
或NM\u数据$DATES[哪个(nchar(NM\u数据$DATES)!=8)]
我尝试了NM\u数据$DATE,那么您的日期列肯定有一些特殊之处。。。并非所有元素都是yyyymmdd
。是否有些元素只有一年,而不是完整的日期?这也可以解释您的错误不知道如何将“NM_数据$DATES”转换为类“Date”
,以及