将matrix导出到Excel

我做了一个matrix,我想把它导出到Excel。 matrix看起来像这样:

1 2 3 4 5 6 7 2 0.4069264 3 0.5142857 0.2948718 4 0.3939394 0.4098639 0.3772894 5 0.3476190 0.3717949 0.3194444 0.5824176 6 0.2809524 0.3974359 0.2222222 0.3388278 0.3974359 7 0.2809524 0.5987654 0.3933333 0.4188713 0.4711538 0.3429487 8 0.4675325 0.4855072 0.4523810 0.4917184 0.3409091 0.4318182 0.4128788 9 0.3896104 0.5189594 0.4404762 0.2667549 0.5471429 0.3604762 0.3081502 10 0.4242424 0.4068878 0.3484432 0.2708333 0.4766484 0.3740842 0.4528219 11 0.3476190 0.3942308 0.2881944 0.3228022 0.4711538 0.2147436 0.3653846 12 0.6060606 0.3949830 0.2971612 0.3541667 0.5022894 0.3484432 0.4466490 13 0.4675325 0.5972222 0.6060606 0.3670635 0.4393939 0.3939394 0.3695652 14 0.4978355 0.4951499 0.4480952 0.4713404 0.3814286 0.3147619 0.4629121 15 0.4632035 0.4033883 0.4508929 0.3081502 0.4728571 0.3528571 0.4828571 16 0.3766234 0.5173993 0.4771825 0.4734432 0.5114286 0.3514286 0.4214286 17 0.3939394 0.5289116 0.3260073 0.3333333 0.5663919 0.2330586 0.3015873 18 0.3939394 0.3708791 0.2837302 0.4102564 0.3392857 0.2559524 0.4123810 19 0.3160173 0.5727041 0.4885531 0.3056973 0.4725275 0.3827839 0.3346561 20 0.3333333 0.5793651 0.4257143 0.4876543 0.4390476 0.2390476 0.3131868 21 0.5281385 0.3762755 0.4052198 0.2997449 0.4180403 0.2898352 0.4951499 22 0.3593074 0.3784014 0.4075092 0.2423469 0.4908425 0.3113553 0.3430335 23 0.5281385 0.5875850 0.4404762 0.4634354 0.6071429 0.3763736 0.3747795 24 0.3549784 0.6252381 0.5957341 0.4328571 0.4429563 0.4429563 0.3422619 25 0.4242424 0.4931973 0.5054945 0.2142857 0.4670330 0.4285714 0.4312169 26 0.3852814 0.5671769 0.4954212 0.4073129 0.3736264 0.4890110 0.4523810 27 0.5238095 0.3269558 0.5187729 0.4051871 0.5412088 0.5155678 0.5859788 28 0.3160173 0.1904762 0.3205128 0.3384354 0.3429487 0.3173077 0.5123457 29 0.2380952 0.4468537 0.5196886 0.4536565 0.4491758 0.4491758 0.4634039 30 0.4545455 0.4295635 0.4080087 0.4791667 0.3474026 0.3019481 0.4627329 31 0.2857143 0.3988095 0.3397436 0.3443878 0.4294872 0.2756410 0.3456790 32 0.3636364 0.3027211 0.3772894 0.3452381 0.4413919 0.3388278 0.3818342 33 0.3333333 0.4482402 0.4080087 0.4275362 0.2888199 0.4047619 0.4301242 34 0.5411255 0.4825680 0.4043040 0.4417517 0.4748168 0.3850733 0.3708113 35 0.3160173 0.5476190 0.4230769 0.3979592 0.3653846 0.3397436 0.2283951 36 0.4603175 0.4653209 0.4778912 0.5170807 0.3928571 0.4508282 0.4254658 37 0.3939394 0.1955782 0.2490842 0.4047619 0.2490842 0.3516484 0.4559083 38 0.3463203 0.4660494 0.4300000 0.4157848 0.3833333 0.2233333 0.2788462 39 0.5844156 0.4668367 0.3809524 0.3843537 0.4803114 0.3008242 0.5026455 40 0.5454545 0.4902211 0.3740842 0.2946429 0.5279304 0.2971612 0.3293651 41 0.5800866 0.3758503 0.5073260 0.5136054 0.3598901 0.5393773 0.4823633 42 0.4458874 0.3937390 0.3785714 0.4686949 0.3768315 0.3127289 0.4954212 43 0.6536797 0.5740741 0.5533333 0.4453263 0.4866667 0.5400000 0.4358974 44 0.5887446 0.5548469 0.4308608 0.3949830 0.5462454 0.3411172 0.5136684 45 0.4069264 0.4357993 0.4308608 0.3830782 0.4308608 0.3795788 0.4025573 46 0.5974026 0.3826531 0.3672161 0.3954082 0.4441392 0.3159341 0.5141093 47 0.2554113 0.4196429 0.4262821 0.4961735 0.2788462 0.3301282 0.3055556 

我试过这个命令:

 WriteXLS("my matrix after i converted it to data.frame", "test.xls") 

但是我得到这个错误:

Perl脚本“WriteXLS.pl”未能成功运行。

我GOOGLE了,但我找不到解决scheme。

提前致谢。

任何你不能只使用write.csv

write.csv(mymatrix, "test.csv")

导入它在Excel中,你设置!

PS:我假设你不在WriteXLS调用中的variables名称周围加引号,对吧?

另一个select在Windows上(这似乎是一个合理的假设,因为你正在使用Excel):

您可以使用以下命令将matrix(或数据框)写入剪贴板:

 write.table(mymat, 'clipboard', sep='\t') 

然后进入Excel,单击要成为左上angular单元格的单元格,然后执行粘贴操作,并且您的matrix存在( sep='\t'对于Excel正确解释它非常重要)。

这与其他答案类似,但是您不需要磁盘上的中间文件。

如果您不介意Excel 2007格式,也可以检查xlsx ,因为xlsx不依赖于Perl(尽pipe取决于rJava)。

通过library(xlsx)加载packge后,只需尝试以下操作:

 write.xlsx(USArrests, "/usarrests.xlsx") 

这里很难看到究竟发生了什么。 可能是几件事情。

我认为写一个matrixwrite.table()最简单的方法是使用write.table()和导入write.table()的数据。 它需要一个额外的步骤,但它也保持你的数据在一个不错的格式。

如果foo是你的matrix:

 write.table(foo,"foo.txt") 

如果你得到一个错误,可能会把对象强制为一个matrix:

 write.table(as.matrix(foo),"foo.txt") 

matrix中是否也包含上三angular形中的值? 也许做一个完整的matrix工作:

 foo<-foo+t(foo) write.table(as.matrix(foo),"foo.txt") 

但是这些都只是在黑暗中的随机镜头,因为我没有一个matrix工作。

编辑:作为对其他答案的回应,你可以删除列和row.names=FALSEcol.names=FALSErow.names=FALSEwrite.table()write.csv() (这是相同的function与不同的默认值)。

在重新安装了草莓perl之后,我遇到了同样的问题:在debuggingR中的WriteXLS函数之后,我发现perl模块Text :: CSV_XS从我全新安装中丢失了。 我从DOS命令行安装了这个模块:

 perl -MCPAN -e shell install Text::CSV_XS 

在此之后,WriteXLS工作正常。

 upper # matrix name write.xlsx2(upper,file = "File.xlsx", sheetName="Sheetname",col.names=TRUE, row.names=TRUE, append=TRUE, showNA=TRUE)