- 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
python=3.7 (或直接在anaconda里设置) - 进入环境:source activate
- 退出环境:conda deactivate
- 删除环境:conda remove -n
--all
i. 最常用
install.packages("package_name")
ii. 从GitHub里安装
library(devtools) # 需要提前安装devtools这个package
install_github('URL')
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
as.numeric(x, …) # 转成数字
如果遇到初始csv文件里面用逗号作为千分位分隔符的情况(e.g., 1,000),用gsub(pattern, replacement, x)把逗号修正。(e.g., as.numeric(gsub(’,’, ‘’, x)))
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)
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)
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)
dev.new() # 创建画布
aa <- dev.list() # 获得画布序列
dev.set(which=aa[I]) # 切换画布
dev.print(pdf, "filename.pdf") # 保存图片 ## 其他格式差不多同理*
Book: R for data science
4.3.1 基本语法ggplot(data = ) +4.4 plotly(mapping = aes( ))
Plotly 是我目前用过的最舒服的3d交互式绘图package,画完的图在html上显示。官方documentation
4.4.1 3D Ploti. 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"))



