Экспорт матрицы в Excel - PullRequest
       26

Экспорт матрицы в Excel

3 голосов
/ 15 февраля 2011

Я сделал матрицу и хочу экспортировать ее в Excel. Матрица выглядит так:

           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' не удалось успешно запустить.

Я гуглил, но не смог найти решение.

Заранее спасибо.

Ответы [ 6 ]

11 голосов
/ 15 февраля 2011

Любая причина, почему вы не можете просто использовать write.csv?

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

Импортируйте его в Excel, и все готово!

PS: IПредположим, вы не заключаете в кавычки имя переменной в вызове WriteXLS, верно?

10 голосов
/ 15 февраля 2011

Еще один вариант в Windows (который кажется разумным при условии, что вы используете Excel):

Вы можете записать матрицу (или фрейм данных) в буфер обмена с помощью такой команды:

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

Затем просто перейдите в Excel, щелкните ячейку, в которой вы хотите расположить верхнюю левую ячейку, затем выполните вставку, и ваша матрица там (sep='\t' важно для Excel, чтобы правильно ее интерпретировать).

Это похоже на другие ответы, но вам не нужен промежуточный файл на диске.

7 голосов
/ 15 февраля 2011

Вы также можете проверить xlsx , если не обращаете внимания на формат Excel 2007, поскольку xlsx не зависит от Perl (хотя зависит от rJava).

После загрузки пакета через library(xlsx) просто попробуйте следующее:

write.xlsx(USArrests, "/usarrests.xlsx")
2 голосов
/ 15 февраля 2011

Трудно понять, что именно здесь происходит. Может быть несколько вещей.

Я думаю, что самый простой способ написать матрицу для исключения - использовать write.table() и импортировать данные в Excell. Это делает дополнительный шаг, но также сохраняет ваши данные в хорошем формате.

Если foo ваша матрица:

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

Если вы получили ошибку, возможно, приведите объект к матрице:

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

Содержит ли матрица значения в верхнем треугольнике? Возможно создание полной матрицы работ:

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

Но это все случайные снимки в темноте, поскольку у меня нет матрицы для работы.

РЕДАКТИРОВАТЬ: В ответ на другой ответ, вы можете удалить столбец и имена строк с col.names=FALSE и row.names=FALSE в обоих write.table() и write.csv() (которые являются той же функцией с различными значениями по умолчанию).

0 голосов
/ 04 августа 2016
upper # matrix name

write.xlsx2(upper,file = "File.xlsx",  sheetName="Sheetname",col.names=TRUE, row.names=TRUE, append=TRUE, showNA=TRUE)
0 голосов
/ 26 апреля 2013

Я столкнулся с той же проблемой после переустановки клубничного Perl: после отладки функции WriteXLS в R я обнаружил, что модуль perl Text :: CSV_XS отсутствует в моей новой новой установке.Я установил этот модуль из командной строки DOS:

perl -MCPAN -e shell
install Text::CSV_XS

После этого WriteXLS работал нормально.

...