首页 > 数据分析 > 建立R训练环境

[悬赏]建立R训练环境 (已翻译100%)

查看 (337次)
英文原文:Building an R training environment
标签: R
admin 发布于 2017-04-25 10:43:45 (共 6 段, 本文赏金: 12元)
参与翻译(2人): sea_island greenflute 默认 | 原文

【已悬赏】 赏金: 2元

最近,我在SQLBits做了一天的培训,为了解决方案的顺利,减轻所有的安装问题和参会者的准备工作,我在基础设施方面做了很多工作。这就意味着我们可以用一天的时间来做R,而不是解决故障。
我很高兴有一个在线R训练环境的解决方案,我想分享这个解决方案,这样您就可以在需要训练的时候使用它。

TL博士

使用RStudio构建培训环境的工作流程
获得一个面向web的Rstudio服务器,为用户提供登录细节,以及所有的准备安装条件:


  1. 生成用户名和密码。
  2. 建立一个基于rocker的Docker映像,它包含您的用户和所有的前提。
  3. 在虚拟机上运行Docker映像,用接口实现在外部访问Rstudio服务器。


sea_island
翻译于 2017-10-20 12:02:25
 

参与本段翻译用户:
sea_island

显示原文内容

【已悬赏】 赏金: 3元

魔术发生的地方

首先我需要的是给人们的用户名和密码,我想把这些都提前准备好,最好还有联系信息。我以前用过Moo,它可以近百个客户卡片 - 我只需要做出来即可。我使用 random 包和 magick 包来生成密码并写入PDF,以便随后上传到 moo.

你可以在 gist 中看完整的代码,但关键代码包括以下几点:

  • 随机生成密码步骤
write.csv(data.frame(usernames=paste0("u",stringr::str_pad(1:n,pad = "0",width = 3))
                     ,pwords=random::randomStrings(n,len = 6,digits = FALSE,loweralpha = FALSE))
          ,"users100.csv",row.names = FALSE)
  • 读取空白卡片背面图像
myimage <- magick::image_read(myfile,density = 500)
  • 使用循环(或许有更好的办法)
    • 在卡片背面图片输出文字
    • 保存修改过后的图片
myimage2 <- magick::image_annotate(  myimage, "lockedata.biz", font = "Roboto", size = 90, location = " 350 75" )
magick::image_write(myimage2, paste0("GeneratedBacks/",basename, up[i,"usernames"], ".", baseext))

Filled in card back
Before writing
Card front

greenflute
翻译于 2017-10-30 21:38:25
 

参与本段翻译用户:
greenflute

显示原文内容

【已悬赏】 赏金: 2元

创建用户

然后,更复杂一些的步骤是写一个脚本来正确的建立用户。Peter Shaw 帮我搞定了一下初始代码:

for userdetails in `cat users.csv`
do
        user=`echo $userdetails | cut -f 1 -d ,`
    passwd=`echo $userdetails | cut -f 2 -d ,`
        useradd $user -m -p `mkpasswd $passwd`
done

遍历CSV的每一行,根据密码建立用户。我是使用 mkpasswd 工具来加密 password。 mkpasswd 是 whois 程序的一部分,我们后面还要用到。

这里不仅需要用户的登陆信息,还需要在他们的主目录里保存员工信息。否则,没有主目录,RStudio不会好好工作。

greenflute
翻译于 2017-10-30 21:43:52
 

参与本段翻译用户:
greenflute

显示原文内容

【已悬赏】 赏金: 1元

rocker

下一步是RStudio服务器。Dirk Eddelbuettel 在rocker 名下建立了一系列的Docker镜像。其中一个有安装了 Rstudio 服务器和 tidyverse 。使用这个预配置好的容器意味着我只需要做最后的收尾工作就可以获得我所需要的系统。

greenflute
翻译于 2017-10-30 21:47:26
 

参与本段翻译用户:
greenflute

显示原文内容

【已悬赏】 赏金: 2元

Dockerfile

倒数第二步是建立我自己的基于rocker的自定义Docker容器,建立所有用户,并在tidyverse之上安装所有我额外需要的东西。

FROM rocker/tidyverse
MAINTAINER Steph Locke 
RUN apt-get install libudunits2-0 libudunits2-dev whois
RUN  R -e 'devtools::install_github("lockedata/TextAnalysis")' 
RUN  R -e 'devtools::install_github("dgrtwo/widyr")' 
ADD https://gist.githubusercontent.com/stephlocke/0036331e7a3338e965149833e92c1360/raw/607fb01602e143671c83216a4c5f1ad2deb10bf6/mkusers.sh /
ADD https://gist.githubusercontent.com/stephlocke/0036331e7a3338e965149833e92c1360/raw/6d967c19d9c73cecd1e2d4da0eed2cd646790bd5/users.csv /
RUN chmod 777 /mkusers.sh
RUN /mkusers.sh

如上,启动 tidyverse 和 Rstudio,然后:

  • 增加我的包所需要的依赖程序,还有whois包以便使用mkpasswd
  • 从github安装包,注意其中一个是专门用来方便文本分析那一天的课程的
  • 从gist获得所有shell脚本和csv文件
  • 使脚本可执行并运行之
greenflute
翻译于 2017-10-30 21:52:53
 

参与本段翻译用户:
greenflute

显示原文内容

【已悬赏】 赏金: 2元

搞定

最后一步在一台 Digital Ocean 虚拟机上启动这个容器(其实任何能运行docker的环境都行):

docker pull stephlocke/montypythonwkrshopdocker 
docker run -d -p 80:8787 stephlocke/montypythonwkrshopdocker

你可以克隆我的 github 仓库并加以修改以适合你自己的需要,在Docker上构建它并在任何需要一个可修改的R训练环境的时候运行它,它还可以通过Web浏览器访问。

你可以把它当作一个普通的工作环境,但是最好先读一下我关于Docker数据持久化的文章。因为run命令并没有映射任何外部驱动器,如果主机崩溃了,那么所有的东西就都没了。或许使用代码版本管理是个好主意。

greenflute
翻译于 2017-10-30 22:00:05
 

参与本段翻译用户:
greenflute

显示原文内容

GMT+8, 2018-10-16 08:27 , Processed in 0.042154 second(s), 11 queries .