来自 oflyhigh | May 26, 2018
本文经作者 @oflyhigh授权转载(原文链接),略有改动。
运行脚本
昨天我摸索出来执行R脚本的命令为:
R --slave -f hello.R
今天发现原来有一个专门的指令做这个工作:
Rscript
比如对于上述命令,我们可以修改为:
Rscript hello.R
除此之外,我们还可以用-e
来直接执行一些语句,比如:
Rscript -e "1+1"
Rscript -e 'print("Hello World");'
Rscript -e "print(\"Hello World\");"
Rscript -e "print(\"Hello World\");1+1;2+2"
安装软件包
在使用Python语言时,我们知道可以使用pip
指令来安装所需的软件包,那么R语言环境下,我们如何安装呢?答案是在R环境的提示符下直接使用类似如下指令即可:
install.packages("example_package")
比如我想安装一个caTools的东西(我也不知道是啥),这样做就可以鸟:
install.packages("caTools")
注:我是在普通用户账户下执行的R,所以执行上述指令是会提示我:
Would you like to use a personal library instead? (y/n) y
也就是说数据包被安装的本地,如果想安装到全局,估摸应该用sudo R
来启动R环境(我瞎猜的,本地安装挺好,就不去测试了)
加载安装好的软件包,使用类似如下指令即可:
library(caTools)
见识一下
尽管"Hello World!"已经超级强大了,但是还是想见识一下更加强大的功能,在R语言的维基百科页面有一个曼德勃罗集合(Mandelbrot set)的例子,略作修改拿来运行一下,长长见识。
#install.packages("caTools") # install external package
library(caTools) # external package providing write.gif function
jet.colors <- colorRampPalette(c("#00007F", "blue", "#007FFF", "cyan", "#7FFF7F",
"yellow", "#FF7F00", "red", "#7F0000"))
dx <- 400 # define width
dy <- 400 # define height
C <- complex(real = rep(seq(-2.2, 1.0, length.out = dx), each = dy),
imag = rep(seq(-1.2, 1.2, length.out = dy), dx))
C <- matrix(C, dy, dx) # reshape as square matrix of complex numbers
Z <- 0 # initialize Z to zero
X <- array(0, c(dy, dx, 20)) # initialize output 3D array
for (k in 1:20) { # loop with 20 iterations
Z <- Z^2 + C # the central difference equation
X[, , k] <- exp(-abs(Z)) # capture results
}
write.gif(X, "Mandelbrot.gif", col = jet.colors, delay = 25)
虽然不知道是什么鬼,但是很漂亮,不是吗?
comments powered by Disqus