第一次写博客,从今日起正式开始记录小白成长记.
1. 问题描述
将从MATLAB中导出的mat数据, 导入到R中, 并将dataframe格式 转化为 matrix格式.
![mat数据](https://img-blog.csdnimg.cn/20181213104733169.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTkzODkwMw==,size_16,color_FFFFFF,t_70)
如上图1为MATLAB导出的mat数据, 大小为9843*1643.
2. 解决方案
解决方案一共分为以下3个步骤.
|
2.1 mat数据转化为csv格式
在matlab中, 使用csvwrite函数,其中s为mat文件,将mat文件导出为"ko_wt.csv"文件.
csvwrite('ko_wt.csv',s);
2.2 R读入csv文件
在R中, 使用read.csv函数读取 csv 文件,
read.csv(file, header = TRUE, sep = ",", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...)
file需要给出csv文件路径 (win和mac路径符号不同需注意), 其余参数参见help(read.csv), 类似读取数据的函数有:read.table, read.csv2, read.delim等.
具体参见: http://127.0.0.1:17814/library/utils/html/read.table.html
data1<-read.csv('d:/ko_wt.csv') #参数默认为TRUE
data2<-read.csv('d:/ko_wt.csv',header=FALSE)
2.3 dataframe转化为matrix
将dataframe转化为matrix, 目前找到了2种方法,欢迎补充..
- 使用 data.matrix 函数
y = data.metrix(data1)
- 使用as.number函数(详见help(as.number))
y <- apply(data1, as.numeric)
3. 待解决
将大小为9843*1643的matrix, 取任意一行存为numeric格式.