0

我有高维数据,用于大脑信号,我想用 R 来探索。

因为我是一名数据科学家,所以我真的不使用 Matlab,而是使用 R 和 Python。不幸的是,与我合作的团队正在使用 Matlab 来记录信号。因此,对于那些对数据科学感兴趣的人,我有几个问题。

Matlab 文件,记录的数据,是具有以下尺寸的单个对象:1000*32*6000

1000:表示信号的采样率。

32:表示通道数。

6000:表示以秒为单位的时间,因此是 1 小时 40 分钟长。

我面临的问题/挑战:

我将我拥有的“mat”文件转换为 CSV 文件,因此我可以在 R 中使用它们。但是,CSV 文件是二维文件,尺寸为:1000*192000。

  1. CSV 文件相当大,大约 1.3 GB。有没有更好的方法将“mat”文件转换为与 R 兼容且尺寸更小的文件?我用 readMat 试过“R.matlab”,但它与第 7 版的 Matlab 不兼容;所以我尝试保存为 V6 版本,但它显示“错误:无法分配大小为 5.7 Gb 的向量”

  2. 读取 CSV 文件所需的时间相当长!加载数据大约需要 9 分钟。那是使用“fread”,因为基本 R 函数 read.csv 需要永远。有没有更好的方法来更快地读取文件?

  3. 一旦我将数据读入R,它是1000 * 192000;而它实际上是 1000*32*6000。有没有办法在 R 中拥有多维对象,在给定时间访问信号和时间框架变得更容易。 像 dataset[1007,2],这将是 1007 秒和通道 2 的时间范围。我想以这种方式访问​​它的原因是轻松比较时间范围并将它们相互绘制。

任何问题的任何答案将不胜感激。

4

1 回答 1

0

这是读取大型 CSV 文件的一个很好的参考: https ://rpubs.com/msundar/large_data_analysis一个关键的要点是为您正在读取的每一列分配数据类型,而不是让读取函数根据内容来决定。

于 2017-06-05T21:29:52.397 回答