美文网首页
Ten Time-Saving R Hacks

Ten Time-Saving R Hacks

作者: 城管大队哈队长 | 来源:发表于2020-02-28 13:59 被阅读0次

最近RSS订阅给我推送一篇关于R tips的博文,看完感觉甚好,这里稍微做些了批注作为我的备忘录。大家感兴趣可以去看Ten Time-Saving R Hacks

1. Downloading and reading files straight from source

有时候我们可以为了展现一个可重复的代码,可以直接从网上下载数据而不是附上数据。这时候我们可以考虑用 readr 包的函数,比如 read_csv() 或者 read_rds()

my_df <- readr::read_csv(url("https://www.website.com/data.csv"))

如果数据在Github仓库的话,可以在下raw file的时候考虑加 ?raw=true 到URL后面,这可能会加速下载

speed_dating_data <- readr::read_rds(url("https://github.com/keithmcnulty/speed_dating/blob/master/speed_data_data.RDS?raw=true"))

如果你的文件是readr不能解析的,就可以考虑用基本的R下载函数download.file()

download.file("https://github.com/keithmcnulty/speed_dating/blob/master/speed_data_data.RDS?raw=true", destfile = "speed_dating_data.RDS")

speed_dating_data <- readRDS("speed_dating_data.RDS")

但这行命令我却报错了

 download.file("https://github.com/keithmcnulty/speed_dating/blob/master/speed_data_data.RDS?raw=true", destfile = "speed_dating_data.RDS")
trying URL 'https://github.com/keithmcnulty/speed_dating/blob/master/speed_data_data.RDS?raw=true'
Content type 'application/octet-stream' length 250989 bytes (245 KB)
downloaded 245 KB

> speed_dating_data <- readRDS("speed_dating_data.RDS")
Error in readRDS("speed_dating_data.RDS") : 
  ReadItem: unknown type 0, perhaps written by later version of R

估计是这个原因
Cannot load RData in tests

在下数据的时候,你可能会需要频繁的验证自己的账号密码等等,这时候可以考虑用 boxr 这类包,其储存了你的验证信息,这样就可以直接下载而不用反复填写账号了。

2. Storing your credentials for regular use

如果你在连接数据库或者其他网上服务的时候需要频繁的填写密码,就可以考虑看这条了。讲的是利用R的隐藏文件:.Renviron

3. RStudio’s shortcut keys

讲了三个快捷键

  • %>% 对应的快捷键:Ctrl-Shift-M
  • <- 对应的快捷键: Alt + -
  • 以及找文件或者函数的快捷键:ctrl + .

但第三个快捷键我测试的时候发现,如果你是在输入法状态下,是没效果的。

4. Global chunk options in RMarkdown

全局性地更改Rmarkdown的配置

knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE)

5. Easy pasting of ggplots with the patchwork package

patchwork包可以快速对齐或者布局ggplot2图像

6. Smoother dependency management using Renv

对于R包开发者,包依赖管理的利器:Renv

7. Multitask with RStudio’s Jobs(强推!!!!)

R studio在1.2之后,可以把任务放到本地(后台)去跑,然后你可以继续地做其他的操作。

这一点对于R studio severer尤其爽我感觉,因为服务器上的R你一个账号只能跑一个任务……
但我同样遇到一个问题,在文档中说 comment 那行会出来,但我自己跑的时候却没有comment的信息。

RStudio 1.2 Preview: Jobs

8. Rename all variables in scope

批量在脚本中改同一个变量名:Ctrl-Alt-Shift-M

9. Using . to keep piping

管道操作里面用 . 代替上一个管道的输出结果

10. Immediately invoked display

()可以打印变量

## What I usually see

mt_count <- mtcars %>% dplyr::count(cyl)
mt_count
# A tibble: 3 x 2
    cyl     n
  <dbl> <int>
1     4    11
2     6     7
3     8    14

## Immediately invoked display

(mt_count <- mtcars %>% dplyr::count(cyl))
# A tibble: 3 x 2
    cyl     n
  <dbl> <int>
1     4    11
2     6     7
3     8    14

对于Rmardown也是很有帮助的

相关文章

网友评论

      本文标题:Ten Time-Saving R Hacks

      本文链接:https://www.haomeiwen.com/subject/leqlhhtx.html