读取R中的非矩形数据

时间:2017-01-20 11:22:14

标签: r time-series

我有一个相当大的csv格式的数据集,我想读入R.数据结构很烦人(我自己的错)如下:

,US912828LJ77,,US912810ED64,,US912828D804,...
17/08/2009,101.328125,15/08/1989,99.6171875,02/09/2014,99.7265625,...

并且第二行样式重复了几千次。结构是每对列表示不同长度的时间序列(因此数据不是矩形)。

如果我使用

之类的东西
>rawdata <- read.csv("filename.csv")

我得到一个数据帧,其中所有空白条目都填充了NA,并且奇数列被强制为因子数据类型。

我想最终得到的是一组时间序列对象(对于每对列),以第一行中的每个偶数条目命名(&#34; US912828LJ77&#34;字段)或者一个数据帧,行标签为从最小值(每个奇数列的最小值)到最大值(每个奇数列的最大值)的日期。

我无法想象我是唯一一个将数据集放在这样一个无用的结构中的人,但我无法看到有关如何处理这个问题的建议。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

首先,你需要解析每个奇数列到目前为止

odd.cols = names(rawdata)[seq(1,dim(rawdata)[2]-1,2)]
for(dateCol in odd.cols){
    rawdata[[dateCol]] = as.Date(rawdata[[dateCol]], "%d/%m/%Y")
}

现在我猜问题很简单,您只需要找到每列的最小值,最大值,创建一个从最小日期到最大日期运行的向量,将其与rawdata连接并为您US*列处理缺失值