【发布时间】:2015-03-30 11:42:54
【问题描述】:
我继承了一个 csv 文件,其中的数据格式如下:
date v1 date.1 v2 date.2 v3
2015-01-01 1 2015-01-01 4 2015-01-02 5
2015-01-02 2 2015-01-03 5 2015-01-03 2
2015-01-03 3 2015-01-04 3 2015-01-04 6
2015-01-04 4 2015-01-05 2 2015-01-05 2
2015-01-05 5 2015-01-06 6 2015-01-06 4
2015-01-06 6 2015-01-07 3 2015-01-07 5
2015-01-07 7 2015-01-08 1 2015-01-09 1
实际文件有 70 多个日期变量对
注意:第 1、3 和 5 列中的日期不相同
我想清理 R 中的这些数据,以便有一列包含日期,然后在接下来的三列中对应于这些日期的 v1、v2 和 v3 的值:
date v1 v2 v3
2015-01-01 1 4 NA
2015-01-02 2 NA 5
2015-01-03 3 5 2
2015-01-04 4 3 6
2015-01-05 5 2 2
2015-01-06 6 6 4
2015-01-07 7 3 5
2015-01-08 NA 1 NA
2015-01-09 NA NA 1
如果所有日期 (date, date.1, ... date.n) 列都相同,我可以简单地删除它们。但是,因为它们不是,所以删除它们会错误地将某些变量与错误的日期相关联,因为它们的位置(例如,var3 在 2015-01-01 的值似乎是 5,即使 var3 没有值日期)。
我考虑了堆栈(随后是消除非唯一值),但考虑到原始数据集的日期变量配对,这似乎不可行。
我考虑在 dplyr 包中使用 outer_join,如果所有日期列都具有相同的名称(即,如果每个列都称为“date”而不是“date”、“date.1”等),这可能会起作用.我可以重命名每个日期列,但考虑到它们的数量很大,这会很麻烦。
最后,我考虑了合并,但这似乎需要首先将大数据框(包括所有日期变量对)分解为多个数据框。此外,由于日期变量的名称不同,我不得不将它们一一合并。
我怀疑可能有一种方法可以通过应用命令到达我要去的地方,但我对应用命令的技能有限。
提前感谢您的帮助和指导。
【问题讨论】:
-
您考虑过
merge.zoo选项吗?
标签: r