我有一个matlab.mat
文件与表数据类型我想将其导入 R 中。我为此使用“readMat”,R 正在将其作为列表读取。
之后有没有办法将列表转换为 R 中的数据帧或表格格式?当我使用as.dataframe
我收到以下错误:
Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
arguments imply differing number of rows: 5, 6, 1
我想到的一个可能的解决方法是将表从 matlab 导出为 .csv 并将其读入 R。但此解决方案对我不起作用,因为表中的某些列是 1x700 数组,并且在 CSV 中,每个列都会扩展为700 列。
所以我的问题是有没有直接或间接的方法在 R 中导入 MATLAB 表?
我相信最好的解决办法是将表从 MATLAB 导出为 CSV 文件,正如你所建议的。
关于某些列的大小为 1*700 数组,我建议重塑您的数据tidy way http://r4ds.had.co.nz/tidy-data.html- 其中每列代表一个变量,每行代表一个观察值。
1X700 数组的 700 列中的每一列都是不同的变量,还是同一变量的不同值(可能在不同的时间戳)?我的猜测是,您可以将这些数组拆分为 700X1 数组,并向表数据中的相关行添加标识,使用外键 https://en.wikipedia.org/wiki/Foreign_key将每个新行连接到表中的现有行。
“整齐数据”的概念在 MATLAB 中较少使用,其中通常使用行向量来表示数据,但在 R 中更容易被接受(请参阅“整洁宇宙 https://www.tidyverse.org/” 包以了解更多相关信息)。
在 MATLAB 中,将每个 1X700 数组拆分为 700X2 向量 - 一列将是外键 - 数据表中行的标识,第二列应该是变量的值。如果原始数据中有 n 个观察值,那么现在应该有一个大小为 (nX700, 2) 的数组。也将此数组保存为表。假设您现在在 MATLAB 中有两个表(原始表和重构后的数据),请使用以下命令将它们导出为 CSV可写表 https://www.mathworks.com/help/matlab/ref/writetable.html:
writetable(table_1, 'table_1.csv')
writetable(table_2, 'table_2.csv')
然后,在 R 中,使用以下命令读取表格read_csv https://readr.tidyverse.org/reference/read_delim.html:
table_1 <- read_csv('table_1.csv')
table_2 <- read_csv('table_2.csv')
希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)