R programming

R重要学习资料

背景 2020年春季新开了 R语言与数据可视化 一课,需要引入国外优秀的教学资源,现将互联网上搜集的一些资料列示在此,留存备用。 40 questions to test your skill on R for Data Science https://www.analyticsvidhya.com/blog/2017/05/40-questions-r-for-data-science/ 这个链接可以作为试题考察学生 R 基本知识掌握情况 Full Solution – Skilltest on R for Data Science https://www.analyticsvidhya.com/blog/2016/08/full-solution-skill-test-on-r-for-data-science/ 这个,链接也有50道题可以做为测试用 46 Questions on SQL to test a data science professional (Skilltest Solution) https://www.analyticsvidhya.com/blog/2017/01/46-questions-on-sql-to-test-a-data-science-professional-skilltest-solution/ What We Do in the Kernels - A 2018 Kaggle Survey Story https://www.kaggleusercontent.com/kf/8046180/eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0..ZMa3JEgbpva3y9CB9HuYyQ.tXPB98D421Ozx4AAUnU0WWu1j2xNYLxA9YwPSLeXjUHHPtOfNzrDASTlGXoxwaHbKDooJmqggtWlc8YWJKonbTu1X8NxpBTUq1N7Fd5nBEL_gcrHP0UI8XdNEkpZ4DScmdHw9ePkVnpMMvxQig0LjZIO9Fq13wnDian9GiErSOhnel2bev0sTMfgRH23OEYm.taQAXF57KjSF6mRVUuDeHQ/results.html# coinmarketcapr extract and monitor price and market cap of various Cryptocurrencies from ‘CoinMarketCap’ https://amrrs.

如何在Rmarkdown中使用fontawesome

缘起 看到 https://github.com/nstrayer/cv 用 pagedown 包制作的个人简历很精美,然后就开始研究作者是如何实现的。发现其中用了不少的 fontawesome 小图标来美化页面内容,马上想到一个问题:能否在 Rmarkdown 中也使用这些图标来美化 gitbook 风格的个人简历呢? 实现过程 在网上检索了一下,找到了 fontawesome 的官网:https://fontawesome.com/icons? 提供了众多免费和收费的图标。 同时在 巧用 Font Awesome 装点 Markdown 文档 一文中提到了具体的实现方法及应用技巧:即在 Rmarkdown 文件的最后可以加上以下代码: <head> <script defer src="https://use.fontawesome.com/releases/v5.0.13/js/all.js"></script> <script defer src="https://use.fontawesome.com/releases/v5.0.13/js/v4-shims.js"></script> </head> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css"> #上述最后一行是表示此文档需要导入 Font Awesome 最新版本 5.0.13(截止至 2018.06.11)的图标符号,前面的四行是用于将 Font Awesome 4.x 版本的语句转化为 5.0.13 版本。这是因为在 2017 年年底发布的 5.0 版本中,对 4.x 版本的大量图标符号的名称进行了重写,加上此四行就可以同时使用 4.x 和 5.x 版本的语句。 在 Rmarkdown 正文需要引用之处,可以直接插入各类 Font Awesome 符号,其基础用法是: <i class="fa fa-weixin"></i> #这表示一个微信图标的符号 此外,在搜索过程中找到的有用资料如下:

bookdown中的图表浮动体控制问题

问题缘起 在R中用 bookdown 包写书或报告时,经常遇到图或表偏离文字内容的情况,例如:一段文字中涉及一张图,在 word 里通常用手工的方式让图紧挨着段落文字,但在 Latex 中由于是代码排版,常常出现图或表离段落文字较远,或不在一页的情况,影响书或报告的阅读。由于 bookdown 生成PDF主要通过 pandoc 调用 Latex 编译完成,因此,掌握并熟悉 Latex 语法,解决输出PDF存在的格式问题很有必要。 解决办法 经查阅,在 Latex入门 一书334页,5.3.1节讲述了 Latex 中针对图、表的浮动体设置内容,主要涉及四个参数的选择,说明如下: h 指 here ,浮动体内容放在代码所在的上下文位置; t 指 top ,浮动体内容放在代码所在页面的顶部,可能是代码所在页的顶部,也可能是代码所在页之后一页; b 指 bottom ,浮动体内容放在代码所在页面的底部; p 指 page ,一个或多个浮动体内容放在单独的页面中,这个页面被称为浮动页(float page),有正文的页面称为文本页(text page)。 在 bookdown 中,设置图片的代码是: fig.pos = ‘!htbp’ ,示例如下: {r keycocitation, out.width='100%', fig.pos='!htbp', fig.align='center', fig.cap="文献共引网络图", echo=FALSE, message=FALSE, warning=FALSE} 考虑到 latex 对每个位置浮动体的总数和占用大小有一定限制,超出限制的浮动体会被排在较后的页面中,可以增加 ! 符号来忽略这些参数限制。进一步介绍,可以参阅 Latex入门 一书337-339页。

如何在腾讯云服务器上部署shiny应用

缘起 最近带学生一起开发了一个英文文献智能分析系统,准备部署在腾讯云服务器上,现在把部署过程记录下来,留作备忘。 部署过程 开发好的shiny应用,首先应该要在本地电脑上运行正常,一般分为 ui.R 和 server.R 两个文件。 在向腾讯云服务器部署前,需要确认在腾讯云服务器上已完成以下安装: R和Rstudio server Shiny server 如果完成上述软件的安装与配置,就可以开始以下步骤: 步骤1:熟悉并对 shiny server做基本配置 shiny server安装好后,需要熟悉其基本配置,详细的配置说明可以查看 Rstudio公司的官网介绍:https://docs.rstudio.com/shiny-server/ 其中需要重点熟悉的配置文件是shiny-server.conf,默认的文件存放路径是 /etc/shiny-server/shiny-server.conf 可以用 vi 编辑器或用 winscp直接打开对应目录下的文件,如下: # Define the user we should use when spawning R Shiny processes run_as shiny; ## 指定运行shinyapp的user是谁 # Define a top-level server which will listen on a port server { # Instruct this server to listen on port 3838 listen 3838; ## 设置shiny-app的监听端口是3838 # Define the location available at the base URL location / { # Run this location in 'site_dir' mode, which hosts the entire directory # tree at '/srv/shiny-server' site_dir /srv/shiny-server; ## shiny-app对应的服务器根目录 # Define where we should put the log files for this location log_dir /var/log/shiny-server; ## shiny-app运行过程中产生的日志文件存放位置 # Should we list the contents of a (non-Shiny-App) directory when the user # visits the corresponding URL?

修复Rmarkdown+tinytext+pandoc编译问题

问题缘起 在Rmarkdown中编译 研究报告.tex文档,出现报错如下: ! Undefined control sequence. <argument> ...}X>{\centering }X\tabu@rewritefirst 错误: Failed to compile report-1125.tex 查询latex 相关书籍也没有明确的解决办法。在 https://wenda.latexstudio.net/q-1246.html 页面提问,回复很快,但回复人说需要提供完整代码才能判断问题产生的原因。 解决办法 分析判断是安装的latex宏包之间有冲突,未彻底根绝,只有先卸载tinytex,然后再卸载tinytex R包,再重启 Rsudio 后重新安装。整个过程的代码如下,留作备用。 tinytex::uninstall_tinytex() # 卸载tiinytex remove.packages("tinytex", lib="~/R/win-library/3.6") # 卸载R中的tinytex包 # 重启 Rstudio tinytex:::is_tinytex() # 输入该指令回车后,如果现实 TRUE 说明tinytex安装成功 然后对report-1125.Rmd文档编译,此时一切顺利,没有报错。

Rstudio server installation in Ubuntu16.04LTS on Tencent cloud environment

缘起 在本地电脑上跑一些比较费时间的R脚本程序,由于一直占用机时,会影响电脑的其他使用。为此,考虑在腾讯云服务器上安装 Rstudio server,以便能够在云服务器上运行R程序,方便随时随地查看程序运行结果。 安装过程 在腾讯云服务器上,选择操作系统为 Ubuntu 16.04 LTS,安装 Rstudio server。注意:首先安装R,再去安装 Rstudio server,后者是前者的集成开发环境(IDE),方便数据分析人员编写脚本程序、调试代码、显示运行结果。 整个安装分为以下2大步骤6小步骤: 步骤1:安装基础的R包 1.1 首先在 root 用户权限下输入以下命令 sudo vi /etc/apt/sources.list 上述命令是通过ubuntu自带的vi编辑器,对指定目录下的sources.list文件进行修改。 1.2 其次,按下“i”,进入编辑状态,在文件的最后一行输入: deb https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/linux/ubuntu xenial/ 上述选择的是清华大学CRAN镜像地址 说明:ubuntu16.04 LTS的代号为xenial,以上路径是清华大学的ubuntu16操作系统下R语言的镜像源 参考网址:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ 修改完毕后,按下“esc”退出编辑状态,并输入”:wq”,退出并保存,会提示文件修改信息。 1.3 接下来在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令: sudo apt-get update sudo apt-get install r-base r-base-dev 1.4 最后,在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令: R 进入R环境,输入 version,查看安装的版本号。 步骤2:安装 Rstudio server 详细的英文安装说明,请访问:https://www.rstudio.com/products/rstudio/download-server/ 2.1 首先,在ubuntu操作系统的shell界面(有$标志的界面)输入以下命令: sudo apt-get install gdebi-core wget https://download2.rstudio.org/server/trusty/amd64/rstudio-server-1.2.1335-amd64.deb sudo gdebi rstudio-server-1.2.1335-amd64.deb 说明:上述安装的Rstudio server版本号:1.

Using n-gram package in R to analyze Chinese text

中英文文本分析时,除了通常的分词后的词频分析,还有一类比较特殊的词频分析,即 n-gram 词频分析,它主要将语料中具有 共现(co-occurence)特征 的 词语对 提取出来,分析这些共现词语出现频次及呈现的规律,由于这些共现词语比单一词语表达的语义更丰富,可以视作是传统单一词频分析的有益补充,当然传统的单一词频分析也可看作 n-gram 词频分析的特例。 在R语言中,ngram 包可以用来做 n-gram 词频分析,使用示例代码如下: # 先安装 ngram 包 install.packages("ngram") # 加载 ngram 包 library(ngram) # 将分词后的文本以粘贴的方式赋值给变量(可以用其他方法读入分词后的文本) text<-readClipboard() # 设置 ngram 参数,如果是2,代表输出2个共现词,如果是3,代表输出3个共现词,以此类推,同时设置词语之间空格符相连 ngramstring<-ngram(text,n=2, sep=" ") # 输出前n个共现词对频次及出现概率表 head(get.phrasetable(ngramstring),20) # 输出分词后语料中的词语个数 wordcount(ngramstring,sep = " ",count.function = sum) 遗留问题 下列代码运行还有问题,留待以后再解决 rm(list=ls()) setwd("D:/website/word2vec") AIjob<- readr::read_file("AI-job.txt") library(jiebaR) wk <- worker() segment<-wk[AIjob] segment<-segment[nchar(segment)>1]# 去除单字符 ngramstring<-ngram(segment,n=2, sep=" ") head(get.phrasetable(ngramstring),20)

phrase discovery package usage

用 python 开发的中文专业术语/短语识别程序已完毕,放在笔记本电脑 d:\website\phrasediscovery 目录下,要对文本进行术语/短语识别时,请按以下步骤操作: 步骤1:用 Rstudio 打开目录下的 run.py 程序,修改:(1)第60行要分析的文件对象名称与地址,(2)第66行分析输出的文件对象名称与地址,保存退出; 步骤2:在 anaconda 环境下执行命令 python d:\website\phrasediscovery\run.py,等程序运行完毕即可:(1)在 cmd 直接看到输出结果;(2)打开输出文件,也能看到结果。 修改后的程序运行效率不错,blockchainnews.txt 文件23.7M,程序运行输出耗时 147.5秒,合2.46分钟。不过内存耗用较大,约7个G左右。

How to solve R wordcloud2 shown blank page

在用 Rmarkdown 输出 wordcloud2 包制作的词云图时,经常出现空白页面的问题(第一个词云图能正常输出,但第二个图就呈现空白页面),一直不得其解。 今天通过在 https://stackoverflow.com 上以 wordcloud2 为关键词进行问题检索,发现老外已有人提问,详见 https://stackoverflow.com/questions/50163582/r-wordcloud2-showing-blank-page?r=SearchResults ,问题出在 wordcloud2 包的一个小 bug ,要解决也容易,就是在 Rstudio 的控制台输入以下命令对 wordcloud2 升级: devtools::install_github("lchiffon/wordcloud2") 升级后会发现,wordcloud2 的最新版本为 0.2.2,之前是 0.2.1,再运行 Rmarkdown ,发现所有的词云图输出就正常了。 一个体会:由于国内的 R 使用频度和水平和国外比有一定差距,遇到一些新问题,最好的解决之道就是上 Stackoverflow 上寻找答案,一定能高效又快速地解决。