我从管理信息系统中下载了csv数据。有一些变量是日期,它们以格式为“ 2012/11/16 00:00:00”的字符串形式写在csv中。
读取csv文件后,我使用as.Date()函数将日期变量转换为日期。对于不包含任何空白项的所有变量,此方法都适用。
对于那些确实包含空白项目的消息,我会收到以下错误消息:“字符字符串不是标准的明确格式”
我怎样才能用R替换“ 0000/00/00 00:00:00”之类的空白项目,以使as.Date()函数不会中断?您可能还会推荐其他方法吗?
我一直在尝试学习R一段时间,但还没有把我的知识提升到一个不错的水平.我最终会到达那里,但我现在处于紧张状态,并且想知道你是否可以帮助我做一个快速的"转型"型作品.
我有一个包含1800万行的csv数据文件,其中包含以下数据字段:人员ID,日期和值.它基本上来自模拟模型,并模拟一个人对其储蓄账户的贡献,例如:
1,28/02/2013,19.49
2,13/03/2013,16.68
3,15/03/2013,20.34
2,10/01/2014,28.43
3,12/06/2014,38.13
1,29/08/2014,68.46
1,20/12/2013,20.51
Run Code Online (Sandbox Code Playgroud)
因此,正如您所看到的,数据中可以有多个ID,但每个人的日期和贡献金额是唯一的.
我想改变这个,所以我每个人都有一年的贡献历史.所以例如以上将成为:
ID,2013,2014
1,40.00,68.46
2,16.68,28.43
3,20.34,38.13
Run Code Online (Sandbox Code Playgroud)
我对如何处理问题有一个大概的想法:用年份创建另一列数据,然后按ID和年份汇总,以添加适合每个ID /年桶的所有贡献.我不知道如何开始将其翻译成R脚本.
任何指针/指导都将非常受欢迎.
非常感谢和亲切的问候.
请考虑以下合成数据框:
#Learning to enable splitting contributions spanning two months
start = c(as.Date("2013-01-01"), as.Date("2013-02-01"), as.Date("2013-04-01"), as.Date("2013-04-16"), as.Date("2013-05-16"))
end = c(as.Date("2013-01-31"), as.Date("2013-03-31"), as.Date("2013-04-15"), as.Date("2013-05-15"), as.Date("2013-05-31"))
amount = c(100, 200, 50, 100, 50)
df = data.frame(start,end,amount)
Run Code Online (Sandbox Code Playgroud)
这是收到的现金及其相关时间段的清单。其中一些时间段跨越两个月。我想按月汇总。对于与跨越两个月的时期相关的那些金额,我想在两个月之间线性分配/分配它们。
在 R 中执行此操作的惯用正确方法是什么?