文章目录
1. R 检测包库是否安装, 如果没安装则安装到指定目录
if(!("igraph" %in% rownames(installed.packages())))
{
install.packages("igraph", lib="./Rpackages/")
}
2. R 使用指定目录下的包库
library("igraph", "./")
3. R 用命令安装包库到指定目录
if [ -n $R_LIBS ]; then
export R_LIBS=~/Rpackages/
else
export R_LIBS=~/Rpackages/:$R_LIBS
fi
echo $R_LIBS
gcc --version
R CMD INSTALL -l $R_LIBS ../../igraph_1.2.4.1.tar.gz
4. 设置 R 所使用的 GCC 环境
在当前用户主目录下配置 .Renviron
文件
示例:
curpath=/home/mylogonuser/
PATH=$curpath/GCC-5.4.0/bin:/usr/bin:/bin
LD_LIBRARY_PATH=$curpath/GCC-5.4.0/lib
LD_LIBRARY_PATH=$curpath/GCC-5.4.0/lib64:$LD_LIBRARY_PATH:/usr/lib64:/usr/lib:/lib64:/lib
LD_RUN_PATH=$curpath/GCC-5.4.0/lib
LD_RUN_PATH=$curpath/GCC-5.4.0/lib64:/usr/lib64:/usr/lib:/lib64:/lib
LD_LIBRARY_PATH=$curpath/curlibs/usr/lib64:$curpath/curlibs/usr/lib:$curpath/curlibs/lib64:$LD_LIBRARY_PATH
LD_RUN_PATH=$curpath/GCC-5.4.0/lib64:$curpath/curlibs/usr/lib64:$curpath/curlibs/usr/lib:$curpath/curlibs/lib64:/usr/lib64:/usr/lib:/lib64:/lib
PATH=$curpath/GCC-5.4.0/bin:$curpath/curlibs/usr/bin:$curpath/curlibs/sbin:/usr/bin:/bin
[1]. https://stackoverflow.com/questions/1616983/building-r-packages-using-alternate-gcc
5. R 安装 xlsx 包库读取 xlsx 文件
配对:
使用 R CMD INSTALL 源代码压缩包
手动从源码安装
Red Hat Enterprise Linux Server release 6.3 (Santiago) x86_64
gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4)
R version 3.2.0 (2015-04-16) – “Full of Ingredients”
java version “1.7.0_79” (Oracle)
rJava_0.9-7.tar.gz
xlsxjars_0.6.0.tar.gz
xlsx_0.5.7.tar.gz
在 rstudio
中使用 install.packages()
自动安装
Fedora release 29 (Twenty Nine) x86_64 workstation
gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2)
R version 3.5.3 (2019-03-11) – “Great Truth”
java version “1.8.0_212” (Oracle)
rJava 0.9-11
xlsxjars 0.6.1
xlsx 0.6.1
5.1 操作示例
xlsx::read.xlsx2(filename,
sheetName = "sheetname",
colClasses = c("character", "numeric")
结果是一个 data.frame
5.2 Error in .jcall(“RJavaTools” … java.lang.reflect.InvocationTargetException
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
Calls: getNetwork ... <Anonymous> -> .jrcall -> .jcall -> .jcheck -> .Call
Execution halted
增大堆空间进行解决 Try this to increase the heap size:
options(java.parameters = "-Xmx8000m")
library(rJava)
library(xlsxjars)
library(xlsx)
这句代码放在 rJava
, xlsxjars
, xlsx
包的载入之前.
[1]. https://cran.r-project.org/src/contrib/Archive/rJava/
[2]. https://cran.r-project.org/src/contrib/Archive/xlsxjars/
[3]. https://cran.r-project.org/src/contrib/Archive/xlsx/
[4]. http://www.sthda.com/english/wiki/reading-data-from-excel-files-xls-xlsx-into-r
[5]. http://www.milanor.net/blog/read-excel-files-from-r/
[6]. http://r.789695.n4.nabble.com/Problem-with-xlsx-package-td3298470.html
[7]. https://stackoverflow.com/questions/21937640/handling-java-lang-outofmemoryerror-when-writing-to-excel-from-r