【发布时间】:2017-07-25 00:11:43
【问题描述】:
这似乎可以快速解决,但我现在已经被难住了一段时间。
在我的数据框中,我有一个日期列。但是,日期列在一行中显示为年,然后在同一列中接下来的几行中显示该年的所有月份,然后是下一年,然后是当年的月份,依此类推。看起来像这样的东西:
c("2011", "7", "8", "9", "10", "11", "12", "2012", "1", "2")
我的问题是,我如何将那一年附加到每个月的月底?另一个主要问题是我将为许多不同的数据帧自动化,这些数据帧从不同的月份和年份开始。例如,一个数据帧可能从 2013 年 6 月开始,而另一个数据帧从 2012 年 9 月开始。
我已经考虑了很长时间,并提出了以下想法: 对于每一行,查看前面的 12 行(一年中有多少个月)并找到字符串长度为 4 的元素(对于“2012”或其他年份;顺便说一下,每个月的字符串长度为 3) .但是,这会失败,因为如果数据从 2011 年 10 月开始。那么第一年我们只得到 3 个月,然后当我运行该算法时,它将进入负值的行,这将导致左右错误R.
我非常感谢您对此的帮助。对于我需要解决的大量数据帧,我似乎无法解决这个问题。
【问题讨论】:
-
你的意思是像
dat <- data.frame(date=c("2011","8","9","10","11","12","2012","11","12"),stringsAsFactors=FALSE)这样的吗? -
@thelatemail 就是这样,我会编辑帖子