我有32个不同名称的矩阵需要保存到.txt
。我试图将每个矩阵添加到列表中,并希望使用循环从列表中保存。我首先尝试使用一个名为mat_dis_func_742
的矩阵。
lsMatrix<-list()
name <- paste("mat_dis_func_", 742, sep="")
mat_dis_temp <- get(name)
lsMatrix[[name]] <- mat_dis_temp
write.table(lsMatrix[1],file=paste("Results/Test.txt"), row.names=FALSE, col.names=TRUE, sep=";",quote=FALSE)
最后保存的是:
mat_dis_func_742.Class;mat_dis_func_742.Lower.bound;mat_dis_func_742.Upper.bound;mat_dis_func_742.n.x.;mat_dis_func_742.h.x.;mat_dis_func_742.f.x.
1;0.0908181818181818;0.339572192513369;2;0.666666666666667;0.666666666666667
2;0.339572192513369;0.588235294117647;1;0.333333333333333;1
我想要的是:
Class;Lower bound;Upper bound;n(x);h(x);f(x)
1;0.0908181818181818;0.339572192513369;2;0.666666666666667;0.666666666666667
2;0.339572192513369;0.588235294117647;1;0.333333333333333;1
因此列名称与mat_dis_func_742.
混合在一起。我不知道如何解决它,但我不确定这是否是保存许多矩阵的正确方法。
答案 0 :(得分:0)
使用write.table(lsMatrix[[1]],...)
代替write.table(lsMatrix[1],...)
。这是一个例子:
# Problem
mat_742 <- diag(5)
colnames(mat_742) <- paste("column", 1:5, sep = "")
colnames(mat_742)
lsMatrix<-list()
name <- paste("mat_", 742, sep="")
mat_dis_temp <- get(name)
lsMatrix[[name]] <- mat_dis_temp
write.table(lsMatrix[1],file=paste("Test.txt"),
row.names=FALSE, col.names=TRUE, sep=";",quote=FALSE) #check file
# Solution
write.table(lsMatrix[[1]],file=paste("Test.txt"),
row.names=FALSE, col.names=TRUE, sep=";",quote=FALSE) #check file