0
我发现rmatio是一个很好的工具,可以将数据框和列表转换为.mat文件(尽管看起来该字符不受支持),但在下面的演示,我想生成一个名为data_list的嵌套列表,但是当我使用write.mat将其导出为.mat文件时,只保留第一列数据,请参阅如何解决此类问题?提前致谢。如何将嵌套列表转换为matlab中的结构(.mat)
library(rmatio)
data(iris)
iris
iris$group<-paste("group",rep(1:2,75),sep="")
names(iris)<-c('a','b','c','d','species','group')
## "."is not support as name in .mat file, so I rename it as "a b c d" for simplicity.
head(iris)
##split the data into list according to species.
out<-split(iris[,c(1:4,6)],f=iris$species)
out
##further split the data by group variable to create a nest list.
data_list<-lapply(out,function(x){
split(x,f=x$group)
})
write.mat(data_list, 'iris.mat')
很好,它的工作原理!尽管不支持嵌套列表,但它仍然可以工作。我已经在matlab上测试了脚本,唯一的不兼容是matlab中不支持点(“。”)作为变量名的一部分,因此需要添加一行来相应地修改名称(名称(data_list)< - gsub(“\\。”,“_”,names(data_list)))。 – johnsonzhj