【问题标题】:Problems reading CSV in Octave在 Octave 中读取 CSV 时出现问题
【发布时间】:2015-11-28 17:52:45
【问题描述】:

我有一个 .csv 文件,但我无法在 Octave 上读取它。在 R 上,我只使用下面的命令,一切正常:

myData <- read.csv("myData.csv", stringsAsFactors = FALSE)

但是,当我转到 Octave 时,使用以下命令无法正确执行此操作:

myData = csvread('myData.csv',1,0);

当我用记事本打开文件时,数据如下所示。请注意,没有逗号将最后一列名称(即 Column3)与第一个值(即 Value1)分开,第一行的最后一个值(即 Value3)和第二行的第一个值也会发生同样的情况(即价值4)

Column1,Column2,Column3Value1,Value2,Value3Value4,Value5,Value6

Column1 用于日期值(格式为 yyyy-mm-dd hh:mm:ss),我不知道这是否与问题有关。

【问题讨论】:

  • csvread 只读取数字数据。作为R的用户,我感受到了你的痛苦。

标签: matlab csv octave


【解决方案1】:

Alex 的回答已经解释了为什么 csvread 不适用于您的情况。该函数只读取数值数据并返回一个数组。由于您的字段都是字符串,因此您需要将 csv 文件读入元胞数组的东西。

该函数名为 csv2cell,是 io package 的一部分。

作为单独的说明,如果您打算对这些日期进行操作,您可能希望将这些日期作为字符串转换为序列日期数字。这将允许您将日期放在数字数组中,这将允许更快的操作并减少内存使用。此外,financial 包有许多处理日期的函数。

【讨论】:

    【解决方案2】:

    csvread 只读取数字数据,因此不幸的是日期不符合条件。

    在 Octave 中,您可能想查看 dataframe 包。在 Matlab 中你会做readtable

    否则,您还可以使用更多原始函数,例如textscan

    【讨论】:

    • 感谢您的信息,这太疯狂了...!
    猜你喜欢
    • 2018-02-28
    • 1970-01-01
    • 2021-11-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    相关资源
    最近更新 更多