“从CSV导入时间序列——很多奇怪的问题”
从CSV导入时间序列-有很多奇怪的问题
我有一个中等大小的外汇时间序列。csv文件,我试图导入。在RM 5.0测试版中尝试这样做让我感到沮丧,但我决定再试一次,用时间序列扩展更新到5.1,并使用旧的存储库。这是一个EURUSD文件,其中包含大约10年前的1分钟数据(超过340万条记录,135MB,标准格式有7个字段:日期,时间,打开,高,低,关闭和音量)。日期和时间为标称型。我尝试对数据进行预处理,将前两列转换为日期和时间类型。RM出于某种原因认为它在RAM中需要超过实际文件大小的10倍,然后挂起、崩溃等等。(如何使用大时间序列的人,如小时96kHz振动数据预计使用这个?根据我的经验,R在内存方面要好得多,速度也快了几个数量级。)所以我尝试使用“cut last”作为第一步(100000),它给了我一个关于简单的示例集格式与时间序列不兼容的错误(即使在cut last函数上有断点),以及一个“警告:使用废弃的示例集流版本1”
所以我决定使用向导重新导入,尽管我不明白为什么甚至文件格式会影响如此简单的情况。
.csv导入似乎不能正常工作。默认值似乎是分号分隔符,对于逗号分隔的格式来说,这是一个奇怪的选择,但这没什么大不了的。试图将日期导入为“yyyy.MM”格式的日期。dd”,它将日期转换为日期时间,都是东部时间00:00:00。一个人只能设置一种格式,因此一旦设置了日期格式,就没有办法指定时间列的格式。如果指定时间格式(首先将date设置为标称格式),则当HH:mm指定为date格式时,所有时间也将转换为日期时间,格式为"Thu Jan 01 HH:mm:ss EST 1970"。似乎没有能力将日期和时间合并到一个时间索引中,至少在不使用不同的程序预处理数据的情况下是这样。在尝试了几个类型选项之后,向导预览中的所有数据都消失了,必须重新开始。(我似乎不能让它做第四次。这个节目显然是想把我逼疯。啊哈-在出现错误后尝试重新加载数据时发生,如下所述。
最初的猜测是日期列是多标称的,时间列是二标称的。对于100条记录预览,这是可行的(尽管像这样的程序不能猜测日期和时间格式确实很奇怪),但是加载更多的数据会抛出一个错误—显然01:04在列中不止一次出现,所以它只显示该列的所有“?”。现在为什么有相同的值两次应该是一个问题,我不知道,也不知道为什么它击中01:04作为一个例子,当01:02是第一次重复,但下一次重新加载(超过100行)导致所有预览数据消失。???
补充道:
论坛软件也有一些问题——我推送预览,我的登录超时了。它试图吃掉我的帖子,但我重新登录,返回,看到了我的短信。现在它将预览,而不是发布,并且不提示登录。复制全部,返回,从头开始重新开始主题…叹息。编辑:现在我发现它第一次发布,但只是不愿承认。我不能删除它,尽管有一个按钮应该是为了这个目的。双叹息。)
我有一个中等大小的外汇时间序列。csv文件,我试图导入。在RM 5.0测试版中尝试这样做让我感到沮丧,但我决定再试一次,用时间序列扩展更新到5.1,并使用旧的存储库。这是一个EURUSD文件,其中包含大约10年前的1分钟数据(超过340万条记录,135MB,标准格式有7个字段:日期,时间,打开,高,低,关闭和音量)。日期和时间为标称型。我尝试对数据进行预处理,将前两列转换为日期和时间类型。RM出于某种原因认为它在RAM中需要超过实际文件大小的10倍,然后挂起、崩溃等等。(如何使用大时间序列的人,如小时96kHz振动数据预计使用这个?根据我的经验,R在内存方面要好得多,速度也快了几个数量级。)所以我尝试使用“cut last”作为第一步(100000),它给了我一个关于简单的示例集格式与时间序列不兼容的错误(即使在cut last函数上有断点),以及一个“警告:使用废弃的示例集流版本1”
所以我决定使用向导重新导入,尽管我不明白为什么甚至文件格式会影响如此简单的情况。
.csv导入似乎不能正常工作。默认值似乎是分号分隔符,对于逗号分隔的格式来说,这是一个奇怪的选择,但这没什么大不了的。试图将日期导入为“yyyy.MM”格式的日期。dd”,它将日期转换为日期时间,都是东部时间00:00:00。一个人只能设置一种格式,因此一旦设置了日期格式,就没有办法指定时间列的格式。如果指定时间格式(首先将date设置为标称格式),则当HH:mm指定为date格式时,所有时间也将转换为日期时间,格式为"Thu Jan 01 HH:mm:ss EST 1970"。似乎没有能力将日期和时间合并到一个时间索引中,至少在不使用不同的程序预处理数据的情况下是这样。在尝试了几个类型选项之后,向导预览中的所有数据都消失了,必须重新开始。(我似乎不能让它做第四次。这个节目显然是想把我逼疯。啊哈-在出现错误后尝试重新加载数据时发生,如下所述。
最初的猜测是日期列是多标称的,时间列是二标称的。对于100条记录预览,这是可行的(尽管像这样的程序不能猜测日期和时间格式确实很奇怪),但是加载更多的数据会抛出一个错误—显然01:04在列中不止一次出现,所以它只显示该列的所有“?”。现在为什么有相同的值两次应该是一个问题,我不知道,也不知道为什么它击中01:04作为一个例子,当01:02是第一次重复,但下一次重新加载(超过100行)导致所有预览数据消失。???
补充道:
论坛软件也有一些问题——我推送预览,我的登录超时了。它试图吃掉我的帖子,但我重新登录,返回,看到了我的短信。现在它将预览,而不是发布,并且不提示登录。复制全部,返回,从头开始重新开始主题…叹息。编辑:现在我发现它第一次发布,但只是不愿承认。我不能删除它,尽管有一个按钮应该是为了这个目的。双叹息。)
0
答案
导入有时确实很“有趣”。您能否发布一个足够大的数据快照来显示问题以及流程的XML ?我不能保证成功,但我也许能提一两个建议。
问候
安德鲁
我设法在Rapd Miner中加载10GB(甚至更大)的时间序列数据集。
这里有一个建议可能会对你有所帮助:
在“读取CSV”>“数据集元数据信息”中找到数据属性
将类型更改为"date_time",而不是"date"。
最好的问候,
韦塞尔
安德鲁:
使用存储库中已有的旧数据导入过程的问题,我认为主要是由于文件太大,并且我已经尝试了导入过程的其他方法,以便原始XML消失。
csv向导导入问题发生在一个较小的集合中,并且不依赖于任何xml。所以我已经从csv文件中附加了前4096条记录。由于使用了OpenOffice Calc来精简文件,时间格式发生了变化。请看下面的数据。
复制步骤:
尝试使用向导导入eurusd1 .csv。
第二个屏幕-列分隔符=逗号
取消选中“忽略错误”
跳过第三个屏幕(注释)
第四屏幕:
日期格式= "yyy.MM.dd"
将第一列设置为日期类型
重新加载数据
设置第二列为时间类型
重新加载数据
所有数据都消失了。必须重新启动向导。如果在不重新启动的情况下继续尝试导出,则存储库文件将只有几百字节,没有实际数据。
问题2:
重新启动向导
执行相同的步骤,直到到达向导的第四个屏幕。
取消选中“预览只使用前100行”
取消选中“忽略错误”
重新加载数据
(关闭错误弹出窗口)
重新加载数据
所有数据都消失了。
* * *
就我的计划而言,如果我不能让Wessel的建议为我工作,我计划使用OpenOffice Calc将文件分成65536个记录块,将文件扩展名更改为。txt,使用regexp搜索并替换OO Writer合并日期和时间字段,重命名为*.csv,然后单独导入文件(文件中超过2个月的数据不算太糟糕,它们将加载速度提高至少50倍)。
* * *
我没看到附加文件的选项。(发光=红,2300)发光[/glow]和[move]滚动框[/move]插入Flash,许多动画表情符号::)…如果我有一台服务器,我想www或ftp链接可以工作,但是不提供任何附加文件的方式似乎是一个基本的疏忽。也许我遗漏了什么。
这些编辑过的行应该会重现这个问题:
为了节省在OpenOffice中进行转换的时间,您可以这样做。
我添加了比可能需要的更多的运算符,但是我喜欢把事情复杂化。D;
安德鲁