在 Octave 中读取 CSV 文件时出现问题
Problems reading CSV in Octave
我有一个 .csv 文件,但我无法在 Octave 上读取它。在 RI 上,我只使用下面的命令,一切都正常读取:
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
仅读取数字数据,因此不幸的是日期不合格。
在 Octave 中,您可能需要查看 dataframe 包。在 Matlab 中你会做 readtable
.
否则,您还可以使用更多原始函数,例如 textscan
。
Alex 的回答已经解释了为什么 csvread
不适用于您的情况。该函数仅读取数字数据和 returns 数组。由于您的字段都是字符串,因此您需要将 csv 文件读入元胞数组的东西。
该函数名为 csv2cell
and is part of the io package。
作为一个单独的说明,如果您打算对这些日期进行操作,您可能希望将这些日期作为字符串转换为日期序列号。这将允许您将日期放在一个数字数组中,这将允许更快的操作和减少内存使用。另外,financial
包有很多处理日期的函数。
我有一个 .csv 文件,但我无法在 Octave 上读取它。在 RI 上,我只使用下面的命令,一切都正常读取:
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
仅读取数字数据,因此不幸的是日期不合格。
在 Octave 中,您可能需要查看 dataframe 包。在 Matlab 中你会做 readtable
.
否则,您还可以使用更多原始函数,例如 textscan
。
Alex 的回答已经解释了为什么 csvread
不适用于您的情况。该函数仅读取数字数据和 returns 数组。由于您的字段都是字符串,因此您需要将 csv 文件读入元胞数组的东西。
该函数名为 csv2cell
and is part of the io package。
作为一个单独的说明,如果您打算对这些日期进行操作,您可能希望将这些日期作为字符串转换为日期序列号。这将允许您将日期放在一个数字数组中,这将允许更快的操作和减少内存使用。另外,financial
包有很多处理日期的函数。