【发布时间】:2014-10-09 17:46:02
【问题描述】:
例如,我在 matlab 中有一个结构
A =
在:[200x1 双倍]
列:{28x1}
行数:[200x28 双倍]
如何在 R 中创建一个数据框,其中 A.cols 作为列,A.rows 作为标题 和 A.in 作为数据
我正在使用 R.Matlab 包,但是当我读入 mat 文件时卡住了,我该怎么做? 感谢您的帮助!
【问题讨论】:
例如,我在 matlab 中有一个结构
A =
在:[200x1 双倍]
列:{28x1}
行数:[200x28 双倍]
如何在 R 中创建一个数据框,其中 A.cols 作为列,A.rows 作为标题 和 A.in 作为数据
我正在使用 R.Matlab 包,但是当我读入 mat 文件时卡住了,我该怎么做? 感谢您的帮助!
【问题讨论】:
在 MATLAB: 中将您的 A 转换为数据集并使用 export() 函数创建一个文本文件(而不是 .mat 文件)。请注意,您的列名和行名必须是字符串单元格,而不是数字向量。
因为您的 A.in 是一个数字矩阵:
A.rows = [11,12,13,14,15]; %# numeric vector
A.cols = {'A','B','C','D','E'}; %# cell of strings
A.in = magic(5); %# numeric matrix
DS = mat2dataset(A.in,'VarNames',A.cols, 'ObsNames',cellstr(num2str(A.rows')));
export(DS,'file','A.txt')
根据需要为您的文件命名,例如'A.txt'。 您可以通过以下方式检查名为“A.txt”的文件的内容:
type A.txt
在 R 中选择您的'A.txt' 文件所在的文件夹并使用函数read.table():
A <- read.table('A.txt',header = TRUE)
rownames(A) <- A$Observations
A$Observations <- NULL
在 R 中探索您想要的 MATLAB 变量:
head(A)
# A B C D E
# 11 17 24 1 8 15
# 12 23 5 7 14 16
# 13 4 6 13 20 22
# 14 10 12 19 21 3
# 15 11 18 25 2 9
请注意,在您提供的示例中,您的数据在A.rows,行名在A.in。
【讨论】: