继续学R:安装软件包

in #r6 years ago

昨天学习了一下如何在Linux(Ubuntu )下装R(还好我们学的是R语言,而不是B语言😰),并且简单测试了一下如何使用。详情可以参考《学R:准备工作》,今天来继续学R。


(图片从 @dapeng 的帖子里偷的)

运行脚本

昨天我摸索出来执行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)

Mandelbrot.gif

虽然不知道是什么鬼,但是很漂亮,不是吗?

相关链接

Sort:  

最近掀起学R的热潮啊!

大鹏曰:客官,来玩啊~~

看起来有点像是细胞分裂😂
btw,现在刷steemit有种感觉被两个老师监督念书的赶脚(´▽`)

@dancingapple O哥親自教授

打卡

o哥这个例子跟你帖子里拍那张书页里的“康威生命游戏”是类似的

我这一回家就马上打开电脑学习了……本想闲云野鹤,万万没想到😂

打卡奖励 💰💰

哈哈,蟹蟹奖励

谢谢o哥为我们学 R 摇旗呐喊!

我那书主要是为 windows 用户写的。考虑到 linux 用户都善于折腾,所以就只是提了一嘴,没做详细介绍。不过,如果有 o 哥的帖子做指导,linux 用户会省很多事。

o 哥可否授权允许把这两篇帖子(以及后续)转载到 《学 R》一书的主页 http://xuer.pzhao.net

哈哈,我就是凑热闹瞎玩的
要是觉得有用随便转载

点赞。回复。赖不掉了。

still "hello world" again, but i will try to follow this until end :)

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.032
BTC 63161.84
ETH 3061.57
USDT 1.00
SBD 3.97