我有一个相当大的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;字段)或者一个数据帧,行标签为从最小值(每个奇数列的最小值)到最大值(每个奇数列的最大值)的日期。
我无法想象我是唯一一个将数据集放在这样一个无用的结构中的人,但我无法看到有关如何处理这个问题的建议。任何帮助将不胜感激!
答案 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*
列处理缺失值