R 常用代码整理


目前需要写很多R code,搞个简单一点的cheatsheet。以下是目前设想的outline,内容会一点一点补上去的。

1 关于环境

** 需要在终端操作

  • 查看环境:conda env list
  • 创建环境:conda create -n <envi_name> python=3.7 (或直接在anaconda里设置)
  • 进入环境:source activate <envi_name>
  • 退出环境:conda deactivate
  • 删除环境:conda remove -n <envi_name> --all

2 安装package

i. 最常用

install.packages("package_name")

ii. 从GitHub里安装

library(devtools) # 需要提前安装devtools这个package
install_github('URL')

3 数据处理

3.1 数据导入导出

setwd("路径") # 设定working directory
dataset <- read.csv(file, header = TRUE, sep = ",", quote = "\"",dec = ".", fill = TRUE, comment.char = "", …) # 导入csv
head(datatset, n) # 查看前n条数据
write.csv(dataset, file, traitsAsDir = FALSE, csv2 = TRUE, row.names = FALSE, ...) # 导出csv

3.2 处理格式

3.2.1 处理数字

as.numeric(x, …) # 转成数字
如果遇到初始csv文件里面用逗号作为千分位分隔符的情况(e.g., 1,000),用gsub(pattern, replacement, x)把逗号修正。(e.g., as.numeric(gsub(’,’, ‘’, x)))

3.2.2 处理字符串

as.character(x, …) # 转成字符串

3.2.3 处理日期

as.Date(x,format)
x是要转的日期,format是x的格式。e.g. format="%Y/%m/%d"

  • %Y:四位数年份 (e.g., 2021)
  • %y:两位数年份 (e.g., 21)
  • %m:数字的月份 (e.g., 01)
  • %b:缩写的月份 (e.g., Jan)
  • %B:完整的月份 (e.g., January)
  • %a:缩写的星期 (e.g., Mon)
  • %A:完整的星期 (e.g., Monday)
  • %d:日期 (e.g., 20)

3.3 多线程

3.3.1 apply函数

apply(X, MARGIN, FUN, …)

  • x: 数组, 包括matrix.
  • margin = { 1 ,按行操作 2 ,按列操作 \begin{cases}1 \text{,按行操作}\\ 2 \text{,按列操作}\end{cases} {1,按行操作2,按列操作
  • fun: 任何build-in或self-defined函数
  • …: 所有传递给fun的参数

lapply(X, FUN, …)
tapply(X, INDEX, FUN = NULL, …, default = NA, simplify = TRUE)

3.3.2 parallel package

detectCores() 查看电脑能够使用的线程数
makeCluster(spec, type, ...) 创建多份并行R copies.
do.call(what, args, quote = FALSE, envir = parent.frame())
parApply(cl = NULL, X, MARGIN, FUN, ..., chunk.size = NULL)用法和apply差不多,parLapply(),parSapply()同理
getDefaultCluster()
stopCluster(cl = NULL)

4 画图

4.1 dev

dev.new() # 创建画布
aa <- dev.list() # 获得画布序列
dev.set(which=aa[I]) # 切换画布
dev.print(pdf, "filename.pdf") # 保存图片 ## 其他格式差不多同理*

4.2 R中自带的plot

4.3 ggplot2

Book: R for data science

4.3.1 基本语法
ggplot(data = <DATA>) + 
  <GEOM_FUNCTION>(mapping = aes(<MAPPINGS>))

4.4 plotly

Plotly 是我目前用过的最舒服的3d交互式绘图package,画完的图在html上显示。官方documentation

4.4.1 3D Plot

i. surface plot

fig <- plot_ly(x=.., y=.., z=.., type="surface") # 单层surface

fig <- plot_ly(showscale = FALSE) # 多层surface
fig <- fig %>% add_surface(z = ~z)
fig <- fig %>% add_surface(z = ~z2, opacity = 0.98)
fig <- fig %>% add_surface(z = ~z3, opacity = 0.98)

ii. scatter plot

fig <- plot_ly(dataframe, x = ~x, y = ~y, z = ~z, marker = list(color = ~color, colorscale = c('#FFE1A1', '#683531'), showscale = TRUE)) %>% add_markers() #单层scatter

fig <- fig %>% add_markers(x=x1, y=y1, z=z1) #多层scatter
fig <- fig %>% add_markers(x=x2, y=y2, z=z2)
4.4.2 保存图片

保存plotly生成的图片需要用到htmlwidgets这个package,同时也需要电脑里下载有pandoc
pandoc下载地址
。Mac用户建议直接install然后安装,用homebrew下载速度十分缓慢。

library(htmlwidgets)
saveWidget(fig, file=paste0( getwd(), "/filename.html"))

  • 5
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值