60个实用的r语言技巧.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 60 实用 语言 技巧
- 资源描述:
-
60 个实用的 R 语言技巧(转载) 本文转载自: 60 个实用的 R 语言技巧 | EthanDeng + 转载请注明以上的原文地址。 ??本文内容来源于 R 的 60 R Tips,这些都是作者们长期使用 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) # error msg: Error: object 'x' not found options(show.error.messages = F) class(x)123 使用 file.path() 创建(使用)文件路径,这可以保证在不同系统下都适用。 setwd(file.path("F:", "git", "roxygen2"))1 在对字符串排序的时候,如果需要对数字也能排序,可以使用 gtools 包中的 mixedsort(),效果与 sort() 不一样。 Treatment <- c("Control", "Asprin 10mg/day", "Asprin 50mg/day", "Asprin 100mg/day", "Acetomycin 100mg/day", "Acetomycin 1000mg/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 关于高阶回归分析的使用情境的汇总参看: Use memory.limit(size=2500) 限制 R 占用内存。 alarm() 函数可以添加到我们函数、过程的末尾,用以提示工作完成进度。(注意:RStudio 中无效) for (i in 1: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("hello world","hello wordx")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() 可以用来做 Bagged MARS (多元适应性回归平滑) 可以使用 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() 函数可以将一个向量翻转过来。 x 200] <- 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),方便我们获取未被显示的元素。 mod col1,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.packages("AER") library(help = AER)12 get(“objectNameString”) 会获取对象名称为 objectNameString 的对象。如果这个对象在一个特定的环境中,使用 envir 参数。 x <- c(1, 2, 3) get("x")12 使用 cmd 运行 R 代码:”C:\your-R-path\R.exe” CMD BATCH –vanilla –slave "c:\project-path\my_script.R" #(可以用这个写自动运行的脚本,比如批处理。)1 可以使用 cor.test(x,y) 计算 x 与 y 的相关性。 如果你要做交互式的数据展示,Shiny 是一个很好的选择,这里是 Shiny 的一张备忘单。 http://bit.ly/1pFWGJW展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




60个实用的r语言技巧.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4334522.html