R 常用代码整理
- 1 关于环境
- 2 安装package
- 3 数据处理
- 3.1 数据导入导出
- 3.2 处理格式
- 3.2.1 处理数字
- 3.2.2 处理字符串
- 3.2.3 处理日期
- 3.3 多线程
- 3.3.1 apply函数
- 3.3.2 parallel package
- 4 画图
- 4.1 dev
- 4.2 R中自带的plot
- 4.3 ggplot2
- 4.3.1 基本语法
- 4.4 plotly
- 4.4.1 3D Plot
- 4.4.2 保存图片
目前需要写很多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"))
更多推荐
R 常用代码整理
发布评论