60个实用的r语言技巧.docx
- 文档编号:1288702
- 上传时间:2022-10-20
- 格式:DOCX
- 页数:6
- 大小:18.19KB
60个实用的r语言技巧.docx
《60个实用的r语言技巧.docx》由会员分享,可在线阅读,更多相关《60个实用的r语言技巧.docx(6页珍藏版)》请在冰豆网上搜索。
60个实用的r语言技巧
60个实用的R语言技巧(转载)
本文转载自:
60个实用的R语言技巧|EthanDeng+
转载请注明以上的原文地址。
?
?
本文内容来源于R的60RTips,这些都是作者们长期使用R积累下来的一些技巧或者建议。
我觉得这个内容挺好的,并且在书上看不到这些内容,所以做了搬运和翻译,重点是加了例子,否则如果只看文字可能搞不懂状况。
在将factor类型的变量转为数值变量的时候切记不要使用as.numeric(),正确的方式是as.numeric(as.character(myFactorVar))。
cha2fac<-as.factor(c("4","8","10","15"))
as.numeric(cha2fac)
as.numeric(as.character(cha2fac))123
使用选项options(show.error.messages=F)可以关闭错误信息提示。
class(x)#errormsg:
Error:
object'x'notfound
options(show.error.messages=F)
class(x)123
使用file.path()创建(使用)文件路径,这可以保证在不同系统下都适用。
setwd(file.path("F:
","git","roxygen2"))1
在对字符串排序的时候,如果需要对数字也能排序,可以使用gtools包中的mixedsort(),效果与sort()不一样。
Treatment<-c("Control","Asprin10mg/day","Asprin50mg/day","Asprin100mg/day","Acetomycin100mg/day","Acetomycin1000mg/day")
sort(Treatment)
require(gtools)
mixedsort(Treatment)1234
在绘图的时候使用ylim=range(myNumericData)+10可以调整Y轴绘图范围,可以使用倍数或者区间值。
x<-seq(1:
10)
set.seed(1101)
y<-10*rnorm(10)
plot(x,y)
plot(x,y,ylim=1.25*range(y))12345
使用plot()绘图时,可以使用las参数调整坐标轴标签(数字)的显示方向,las取值{0,1,2,3},对应的对齐方式为{平行于轴(默认),水平(这个不错),垂直于轴,垂直}。
plot(x,y,las=1)
plot(x,y,las=2)12
关于高阶回归分析的使用情境的汇总参看:
Usememory.limit(size=2500)限制R占用内存。
alarm()函数可以添加到我们函数、过程的末尾,用以提示工作完成进度。
(注意:
RStudio中无效)
for(iin1:
5){
Sys.sleep
(1)
alarm()
}1234
eval(parse(text=paste(“a
eval(parse(text=paste("a<-10")))
a12
sessionInfo()可以获取R的版本、环境信息,以及加载的包的信息。
sessionInfo()1
计算从word1到word2所需要的变化可以使用adist(word1,word2).
adist("helloworld","hellowordx")1
使用选项options(max.print=1000000)可以增加控制台的信息显示的行数。
options(max.print=1000000)1
如何检测时间序列中的奇异值?
[
detection-in-a-time-series](
detection-in-a-time-series)
如果有多个R会话,每个R的唯一id可以用Sys.getpid()获取。
Sys.getpid()1
可以使用unname()去除R对象的名称属性。
y<-quantile(mtcars$mpg)
unname(y)12
检验两个对象(x和y)是否一致使用identical(x,y),使用all.equal会比较各种属性是否一致。
x<-c(1,2)
y<-as.vector(x)
identical(x,y)
all.equal(x,y)
y2<-c(y,3)
all.equal(x,y2)123456
使用R获取Twitter推文(用于文本分析)。
关于时间序列分析简短的介绍:
当某个步骤运行的时间太长(超过预先设定的时间),可以使用R.utils包中的withTimeout()打断,然后跳到下一个步骤继续运行。
可以使用dist()计算矩阵行与行之间的距离(默认是欧氏距离)。
x<-matrix(seq(1:
20),ncol=4,byrow=FALSE)
dist(x,method="euclidean",upper=TRUE)12
计算向量的(多重)差分可以使用diff()
x<-c(seq(1:
5),seq(from=1,to=9,by=2))
diff(x,2)12
选项options(scipen=999)可以关闭数字科学记数法显示。
1e-5
options(scipen=999)
1e-5123
earth包中的bagEarth()可以用来做BaggedMARS(多元适应性回归平滑)
可以使用setClass(‘myClass’)定义一个类型myClass,setAs()可以做进一步的自定义。
创建大量的变量可以使用assign(“varName”,10),原因在于,我们可以向varName传递变量名(比如用循环),方便编程。
assign("x",10)1
dim(matrix)返回的是矩阵的行数与列数。
my.Matrix<-matrix(1:
20,ncol=4)
dim(my.Matrix)12
两个编写函数的技巧:
1.使用…传递已有函数的参数。
2.使用invisible隐藏输出。
视频参看:
使用data.matrix()可以将一个数据框转为数值矩阵,并且因子类型也会得到正确的转化。
invisible(..)可以不显示输出,在定义函数的时候经常使用到。
cat(“\014”)能清空R会话中的内容(类似于CTRL+L清屏,还是蛮有用的)。
cat("\014")1
dir(“folder.path”)会显示文件夹内的内容,类似于cmd。
dir()
dir("subfolder.path")12
在一个因子变量中如果存在缺失值,建议将缺失值做成一个因子等级UNKNOWN,可以使用levels(Var)
my.Factor<-as.factor(c("First","Second","Third",NA))
levels(my.Factor)<-c(levels(my.Factor),"UNKNOWN")
my.Factor123
初始化所有加载的包可以使用lapply(x,require,character.only=T),其中x为包的名称。
lapply(c("dplyr","tidyr"),require,character.only=T)1
rev()函数可以将一个向量翻转过来。
x200]<-NA
mtcars
mtcars2<-mtcars[complete.cases(mtcars),]
mtcars21234
nnet包中的avNNet()可以用来做Averaged神经网络模型。
file.remove(‘filepath’)可以用来删除文件夹中的文件,如果我们要删除重复性的中间文件,可以用它来实现。
file.create("tempfile.R")
file.remove("tempfile.R")12
ada包中的ada()函数可以用来做Boosted分类树问题。
unclass()可以将lm对象拆散成列表(list),方便我们获取未被显示的元素。
modcol1,dfcol1,dfcol2),]
mtcars
mtcars[order(mtcars$carb,mtcars$hp),]12
将一个N阶因子变量转为N个0-1变量最简单的方式是model.matrix(~as.factor(Data)+0)
model.matrix(~as.factor(mtcars$carb)+0)1
对一个时间序列去季节趋势可以使用seaadj():
http:
//goo.gl/Oio7s2.
在一个函数内对函数外的变量的赋值使用
在Windows中,使用memory.limit(size=desired-size)可以限制R使用内存的大小,其他操作系统,使用mem.limits()。
使用file.copy(from=fromFile,to=toFile,overwrite=TRUE)可以实现文件的复制。
debugonce()可以调试一次代码,它与debug()的区别是无需使用undebug()跳出调试。
在R中,将一个因子类型的变量(factor)转化为一组0/1虚拟变量可以使用bins
arules包中的discretize()函数可以很方便的将一个连续变量转为分类变量(categorical)。
NROW()类似于nrow(),不过前者对向量也适用,相比length()更具有鲁棒性。
在R里面输入commandArgs(),将会返回使用cmd运行R脚本所需要传递的参数。
在函数内使用attr(myFunc,“AttrName”)
object.size()可以得到给定R对象所消耗的内存。
当我们处理比较大的R项目的时候,可以使用ls.str()查看这些R对象的结构信息。
dir(path=’dir_path’)将会列出dir_path下的所有文件及文件夹。
library(help=libname)会显示libname这个包的所有函数以及所带的数据集。
(前提是必须安装了这个包)
install.p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 60 实用 语言 技巧
![提示](https://static.bdocx.com/images/bang_tan.gif)