1、do.call函数

针对list里的所有元素执行某一函数,如对N个数据框执行行合并的操作
do.call(“sum”,list(2,4))
[1] 6

2、library()如何引用变量

如果包的名字以变量传到library中,需要设置character.only = T

package <- ggplot2
library(package, character.only = T)

3、加载某个包,如没安装则安装

##character.only = T,指识别字符串
## 函数作用,如果没有安装指定包,则安装并且加载~
## 出现警告,打印警告信息。出现错误,打印错误信息
## 对应包的名字需要以字符串形式输入
load_packages <- function(package) {
tryCatch(
library(package, character.only = T),
warning = function(w) {
print(cat("出现警告", '\n', warnings()))
},
error = function(e) {
print(e)
install.packages(package)
},
finally = {
print(paste0("导入", package, "包"))
library(package, character.only = T)
}
)
}

4、加载包、移除包、卸载包、已经加载的包

library()、detach("package:")、remove.packages("")、(.packages())
cumsum

5、查看内存占用等

# 来查看当前所有对象名
ls()
# 看每个变量占多大内存
object.size()
# 查看现在的work space的内存使用
memory.size()
# 查看系统规定的内存使用上限
memory.limit()
# 释放所有内存
rm(list=ls(all=TRUE))
gc(reset=TRUE)

6、数据对象的保存和加载

save(list=c('dfTrain', 'trainWeights', 'dfTest', 'testID', 'dfSampleSubmission'),
file='./data/training_testing_data_v1.RData')
load('./data/training_testing_data_V2.RData')

7、查看当前目录下文件情况

list.files()

8、packages安装位置

.libPaths()

9、设置因子顺序

#增加参数设置,方便排序和展示
pic_data_1$type <- factor(pic_data_1$type,order=TRUE,levels = c("申请订单","信审总计", "通过总计"))

10、累加、累乘等

#Returns a vector whose elements are the cumulative sums, products, 
#minima or maxima of the elements of the argument
x <- 1:5
cumsum(x)#累加
#1 3 6 10 15
cumprod(x)#累乘
# 1 2 6 24 120
cummax(x)
# 1 2 3 4 5
cummin(x)
# 1 1 1 1 1

11、转义符

"\n"#换行
"\t"#Tab
?Quotes#查看帮助

12、画出指定函数图像,添加到原来的图形上

curve(1/1.5+2/3*x,add = T)

13、鼠标交互式标注文字

#给图形加上文字说明
text(locator(1),"abc")

14、常看包帮助文档

help(package="mongolite")

15、翻转函数

#元素间翻转
rev(1:5)#5,4,3,2,1
#元素内翻转
rev(c("ABC","BCD"))#"BCD" "ABC"

16、停止运行

# 程序停止0.5秒再运行
Sys.sleep(0.5)

17、两个对象是否一致

# 比较奇葩的R对象的比较
grep("Error",1:5) # integer(0)
identical(grep("Error",1:5),integer(0)) # True

18、取消科学计数法

options(scipen = 200)

19、R版本更新之后,不用重新安装包

# 把老R包复制到新版本的library目录下,然后运行下面的代码
update.packages(checkBuilt=TRUE, ask=FALSE)

20、取出字符串中所有的字母

str_extract_all("B51 B53 B55", "[A-Z]+")

21、查看R源码

## 函数直接查看
getAnywhere(函数名)
## 下载源码
1) http://www.r-project.org/ ,点击 Download 下的CRAN;
2) 选择一个镜像;
3) 里面的Source Code for all Platforms下有各种源码了,对于程序包,点packages;
4) 点选择项Table of available packages, sorted by name;
5) 找到要的包,点击看Package source这一项,用tar.gz封装的,下载解压后就能看见源代码了。

22、排列组合

## 求组合
choose(5,2) # 5*4/(2*1)=10
## 求阶乘
factorial(5) # 120
## 组合具体情况,不考虑顺序
combn(1:3, 2,simplify=TRUE)
[,1] [,2] [,3]
[1,] 1 1 2
[2,] 2 3 3

23、字符串转换为代码

eval(parse(text = '1+3'))## 4

24、排序

## 时间长不用这个函数,写法都忘掉了
data(iris)
## 升序排列
iris[order(iris$Sepal.Width),]
## 降序排列
iris[order(-iris$Sepal.Width),]

25、查看R版本

sessionInfo()

26、查看已经安装的包

# 详细的信息
installed.packages()
# 已经安装的包名
dimnames(installed.packages())[[1]]

27、变量名操作

# 判断是否存在tes变量
exists("tes")
# 生成tes变量,value是它的值
assign(x="tes",value=c("a","b","c"))
# 获取变量名为"tes"的变量值
get0("tes")

28、字符串编译执行

eval(parse(text = "print(1:10)"))

29、多行字符串

#多行只能人工调整
test <-
"
A
B
C
"
cat(test)
## 输出
##A
##B
##C

30、Rmarkdown设置

eval
FASLE: 不执行代码
TRUE: 执行代码(default)
echo
FASLE: 不输出代码,输出结果
TRUE: 输出代码&结果(default)
include
FASLE: 执行代码,不输出结果和代码
TRUE: 执行代码(default)
warning、message、error
FASLE: 不输出信息
TRUE: 输出信息(default)

所以只想输出代码而不执行:
​​​echo = TRUE,eval=FALSE​​​​参考:https://yihui.name/knitr/options/#chunk_options​

32、变量类型查看

class
mode
typeof

31、Rmarkdown设置