60个实用的r语言技巧Word文件下载.docx
《60个实用的r语言技巧Word文件下载.docx》由会员分享,可在线阅读,更多相关《60个实用的r语言技巧Word文件下载.docx(6页珍藏版)》请在冰豆网上搜索。
![60个实用的r语言技巧Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/12/bbb29690-cd07-49f3-8f6b-16dd1d572111/bbb29690-cd07-49f3-8f6b-16dd1d5721111.gif)
使用选项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对象的名称属性。
-quantile(mtcars$mpg)
unname(y)12
检验两个对象(x和y)是否一致使用identical(x,y),使用all.equal会比较各种属性是否一致。
-c(1,2)
-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()计算矩阵行与行之间的距离(默认是欧氏距离)。
-matrix(seq(1:
20),ncol=4,byrow=FALSE)
dist(x,method="
euclidean"
upper=TRUE)12
计算向量的(多重)差分可以使用diff()
-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"
dir(“folder.path”)会显示文件夹内的内容,类似于cmd。
dir()
dir("
subfolder.path"
)12
在一个因子变量中如果存在缺失值,建议将缺失值做成一个因子等级UNKNOWN,可以使用levels(Var)
my.Factor<
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("
ada包中的ada()函数可以用来做Boosted分类树问题。
unclass()可以将lm对象拆散成列表(list),方便我们获取未被显示的元素。
modcol1,dfcol1,dfcol2),]
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