RNote100---Tricks of R
原创
©著作权归作者所有:来自51CTO博客作者维格堂406小队的原创作品,请联系作者获取转载授权,否则将追究法律责任
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、查看当前目录下文件情况
8、packages安装位置
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、取消科学计数法
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版本
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、变量类型查看
31、Rmarkdown设置