在Rstdio使用的是3.5.1的64位R版本中遇到问题:The Perl script 'WriteXLS.pl' failed to run successfully.

首先使用

Sys.which("perl") 

输出空串,表明未安装perl。

perl
""

安装上perl之后,运行又出现了:

Error in as.vector(x) : no method for coercing this S4 class to a vector

但是代码里并没有出现as.vector(x)的这个代码部分。

尝试加上这一句:

da=as(sce,"data.frame")

还是不可以。

使用这个还是报同样的错误。

write.table( x = data.frame(sce), file = "file.csv",col.names=TRUE, row.names=TRUE, quote=FALSE )

之后尝试换成

library(readxl)
library(writexl
write_xlsx(as.data.frame(sce), "test000.xlsx")

还是不可以,换成data.frame还是不行。

之后到http://www.bioconductor.org/packages/release/bioc/vignettes/SingleCellExperiment/inst/doc/intro.html

查看了SingleCellExperiment的这个官方文件,它可以由

se <- SummarizedExperiment(list(counts=counts))
as(se, "SingleCellExperiment")

别的类转换而来受到启发,还是不可以,所以转去学习sc4类。

sc3_export_results_xls(sce)

这一句官方说:

This will write all results to sc3_results.xls file. The name of the file can be controlled by the filename parameter.

写到结果文件里,为啥没有找到那个文件呢?。。。

随后又对R中的Data frame数据框格式进行了学习:

转自:https://www.cnblogs.com/studyzy/p/4316118.html

Data Frame一般被翻译为数据框,感觉就像是R中的表,由行和列组成,与Matrix不同的是,每个列可以是不同的数据类型,而Matrix是必须相同的。

R中有3种面向对象的OO系统:S3、S4,R5.

S4对象系统比S3更加严格。

想使用library(xlxs) 包,但是安装了java之后,是32位的,安装在了C盘x86目录下,结果在加载rJava包时报错

Error: package or namespace load failed for ‘rJava’:
loadNamespace()里算'rJava'时.onLoad失败了,详细内容:
调用: inDL(x, as.logical(local), as.logical(now), ...)
错误: unable to load shared object 'E:/R-3.5.1/R-3.5.1/library/rJava/libs/x64/rJava.dll':
LoadLibrary failure: % 不是有效的 Win32 应用程序。

又重新设置了一遍路径和install了rJava还是不行,报同样的错误。

尝试使用包:writexl

这个不需要Java和Excel的支持。

!!!最终终于明白了,自带的那句写入到excel真的是有那个文件的。。。。。只不过路径不是在本地。。。。。

05-28 15:48