具有多个时间序列的 csv 文件

Posted

技术标签:

【中文标题】具有多个时间序列的 csv 文件【英文标题】:csv file with multiple time-series 【发布时间】:2010-10-05 07:22:22 【问题描述】:

我导入了一个 csv 文件,其中包含许多列和数据部分。

v <- read.csv2("200109.csv", header=TRUE, sep=",", skip="6", na.strings=c(""))

文件的布局是这样的:

Dataset1
time, data, .....
0       0
0       <NA>
0       0

Dataset2
time, data, .....
00:00   0
0       <NA>
0       0

(不同数据集的表头完全相同。

现在,我可以绘制第一个数据集:

plot(as.numeric(as.character(v$Calls.served.by.agent[1:30])), type="l")

我很好奇是否有更好的方法:

    将所有数字读取为数字,无需转换。

    以某种有意义的方式处理文件中的不同数据集。

任何提示将不胜感激。谢谢。


状态更新:

我还没有真正在 R 中找到一个好的解决方案,但是我已经开始在 Lua 中编写一个脚本来将每个单独的时间序列分离到一个单独的文件中。我暂时将其保持打开状态,因为我很好奇 R 将如何处理所有这些文件。我每天会收到 8 个文件。

【问题讨论】:

【参考方案1】:

我个人会做的是在将文件读入 R 之前,用某种脚本语言编写一个脚本来分离不同的数据集,并且可能还会进行一些必要的数据转换。

如果您想在 R 中进行拆分,请查找 readLinesscan - read.csv2 级别太高,用于读取单个数据帧。您可以将不同的数据集写入不同的文件,或者如果您有雄心壮志,可以创建可用于read.csv2 的类似文件的 R 对象,并从底层大文件的正确部分读取。

处理完将数据集分成不同的文件后,请在这些文件上使用read.csv2(或最好的read.table 变体——如果这些不是制表符而是固定宽度的字段,请参阅read.fwf)。如果&lt;NA&gt; 在您的文件中指示“不可用”,请务必将其指定为na.strings 的一部分。如果您不这样做,R 会认为您在该字段中有非数字数据,但使用正确的na.strings,您会自动将该字段转换为数字。您的某个字段似乎可以包含00:00 之类的时间戳,因此您需要使用colClasses 并指定一个可以将您的时间戳格式转换为的类。如果内置的Date 类不起作用,只需定义您自己的timestamp 类和一个进行转换的as.timestamp 函数即可。

【讨论】:

以上是关于具有多个时间序列的 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

将具有不同架构(列)的多个文件 (.csv) 合并/合并为单个文件 .csv - Azure 数据工厂

如何使用 gsutil 将多个 csv 文件连接成一个具有单个标题的 csv 文件

将多个 csv 文件连接成具有相同标题的单个 csv - Python

使用 Jupyter notebook 将具有多个工作表的 Excel 文件转换为多个 csv 文件

如何将具有多个标题行的csv文件读入熊猫? [关闭]

如何在 Excel 中组合具有不同列名和列顺序的多个 CSV 文件?