原文链接:

Rstudio中修改工作路径的三种方法_weixin_44370085的博客-CSDN博客_rstudio改变工作目录​blog.csdn.net

Rstudio中修改工作路径的三种方法

1.使用setwd()函数

这个也可以在RStudio的图形化窗口里操作

选择对应的文件夹
然后选择Set As Working Directory

作用:起到临时更改路径的作用,只对当前的Rstudio窗口有效。一旦窗口关闭,又会回到默认路径下。getwd()函数是获取当前路径的函数。

2.global options设置(如图所示)

首先在tools菜单栏下,点击global options选项

然后在default working directory 中可以修改默认工作路径,点browse修改工作路径

最后保存,重新打开Rstudio后工作路径就变成已修改的路径了。

3.通过启动代码设置

首先在Rstudio关联的R版本中,打开“D:Program FilesRR-3.4.3etc”文件夹下的Rprofile.site文件

其次将下述代码复制到Rprofile.site文件中

.First <- function(){setwd(“d:/rdata”)
}

其中工作路径可以按照自己的要求改变

原理:R工作时首先加载.first功能

----------2020年7月10日----------

R Project管理(经评论区指导)

使用项目结构管理的效率比直接创建R脚本的效果好。

参考链接:

R基础 | 学会使用R project及R项目结构示例​www.jianshu.com

当我们分析项目的时候,最好是用文件夹+Project的形式来组织内容。

从零新建R项目

如果是比较大的分析项目最好在一开始就保存为一个rproject。

1.右上角Project右侧倒三角,菜单中点击New Project可以创建新项目。

image.png

横线下面的是已经创建过的项目名,可以点击切换到其他项目。

2.创建新项目时需要指定一个文件夹,最好是一个新的文件夹。以后产生的R代码,图片都会默认存在这个文件夹下。

从存在文件夹创建R项目

  1. 打开RStudio 点击 File -> New Project....
  2. 选择Existing Directory
  3. 点击 Browse ,找到自己的项目文件夹
  4. 最后点击 Create Project.
.
└── my_awesome_project├── src├── output├── data│   ├── raw│   └── processed├── reports├── README.md├── analysis.R └── .gitignore

data文件夹

按需求可有这些子文件夹

  • raw:对用户write-only,对R user read-only
  • temp:临时数据
  • output

src 文件夹

因为可能会有其他非R脚本,因此文件夹不写作R。
脚本组织方式:

  1. library模式:按照分析内容的不同来分成不同子文件夹(ETL,transformation,plotting)。
  2. pipeline模式:有一个主要的runner script,将所有脚本按顺序执行。
    无论哪种方式,都要将函数定义和应用分开。也就是说,只有pipeline或runner scripts用来执行函数,其他的都是定义函数的。
    另外脚本的组织可以视项目大小定。
  • 所有函数定义脚本放在src的子文件夹中(按用途分类命名文件夹,比如src/data_engineering)。将直接执行的脚本直接放在src下。适合较大的项目。
  • 将函数定义脚本放在src下,而执行脚本analysis.R放在根目录。适合小的项目。执行脚本可能像下面这样:
library(some_package)
library(some_other_package)
source("R/functions.R")
source("R/utilities.R")

output文件夹

一般把输出图放在output/plots下面。

reports文件夹

报告pdf放在reports/下面,reporting code放在src下面。

requirements and general settings

如果只是用某个包中的某个函数,不需要library整个包。package::function(arg1, arg2, ...)就可以了。
可以有一个requirements.R, 在所有脚本前执行。这个脚本中放一些基础设置,比如locale。还有CRAN install check。但更建议用Packrat。

## This is our requirements.R script
## TODO : include an `InstalledPackage` fallback
require(googleAnalyticsR)
require(lubridate)
require(dataframes2xls)
require(ggthemr)
require(plyr)
require(dplyr) # need to load plyr before dplyr & not the other way!
require(tidyr)
require(stringr)
# require(bigQueryR)
require(janitor)

packrat

与别人分享代码的时候,常常由于每个人机器上的R版本以及安装的R包的版本不一致,导致程序无法运行,常常看到的错误信息是,你所运行的R包不支持3.X.X版本。将自己项目使用的包打包,这样别人就可以顺利的复现自己的结果了。
packrat的优点:

  • 独立:为一个项目安装新的或不同版本的包不会影响其他的项目。它让每一个项目都有自己独立的包库。
  • 便携:可以方便的将自己的项目从一台电脑转移到另一台电脑,甚至跨平台。
  • 可重复:它记录你需要的每一个包的版本,并保证无论到哪里你都安装的是同样版本的包。install.packages("packrat")
    使用packrat要从创建项目初始开始。先新建项目文件夹。然后将这个文件夹初始化为packrat文件夹。

packrat::init("~/projects/packrat_try")

image.png

Packrat project不同于R project的一点是,它有自己的库。在这个项目中安装的任何包都只针对这个project,而project外安装的所有包对这个project都不可用。

项目文件夹下多了packrat文件夹。里面主要存储安装包的信息。

checkpoint

checkpoint可以

  • 创建一个快照文件夹~/.checkpoint用来存包。
  • 扫描我们的项目文件夹,通过library() and require()来确定我们用了哪些包
  • 从MRAN 安装包install.packages()到我们自己的快照文件夹
  • 将我们的CRAN镜像指向MRAN (修改options(repos))

创建和使用的代码是一样的。快照信息存在~/.checkpoint

library(checkpoint)
checkpoint("2015-04-26")

这两行代码放在自己的脚本的最上面。

两个包的区别

checkpoint基于server端,因此负担不在用户这里,而在服务器上。服务器每天会记录当天R所有包的版本号。代码创建者只需要记录快照日期,而使用者通过快照日期就可以安装和创建者版本一致的R包。

Packrat需要用户远程数据同步自己的Packrat文件和代码给另一个用户。 这是一个很繁重的过程。 但对于包的版本不是更新到同一天,或者有些包不在CRAN上面(github),那么packrat更适用。

mysql在计算机管理中的路径怎么修改_Rstudio中修改工作路径的三种方法相关推荐

  1. 免越狱!苹果iPhone手机怎样修改运营商名称?教你三种方法!

    上次分享了安卓手机和苹果手机修改运营商的方法,小伙伴反馈回来一些问题,先解答以下安卓手机修改运营商遇到的问题,有的小伙伴可能会遇到无法修改的问题,解决方法很简单,只需要在应用管理中将APP的悬浮窗权限 ...

  2. php中获取对象的属性值,PHP获取对象属性的三种方法

    今天查看yii源码,发现yii\base\Model中的attribute()方法是通过反射获取对象的public non-static属性.记得以前看到的代码都是用get_object_vars() ...

  3. fiddler修改接口请求返回数据Response的三种方法

    背景 访问某个URL地址,正常返回结果是 {"code":0,"msg":"success","rows":[" ...

  4. js 中编码(encode)和解码(decode)的三种方法(传递是特殊符号丢失问题,如‘+’)

    转自:https://www.cnblogs.com/luckyuns/p/6396701.html js对文字进行编码涉及3个函数:escape,encodeURI,encodeURICompone ...

  5. js 中编码(encode)和解码(decode)的三种方法

    js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 下 ...

  6. linux设置环境变量java_home,Linux下修改和设置环境变量JAVA_HOME的三种方法

    1. 永久修改,对所有用户有效 # vi /etc/profile //按键盘[Shift + g], 在profile文件最后添加下面的内容: export JAVA_HOME = /home/my ...

  7. html中通过点击button标签实现页面跳转的三种方法

    方法1:使用onclick事件 <input type="button" value="按钮"onclick="javascrtpt:windo ...

  8. C# 中对象与JSON字符串相互转换的三种方法

    JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换,在实际项目中应比较广泛,经过一番搜索,找到如下 ...

  9. python提取cad坐标_怎么提取cad中坐标?CAD批量提取坐标点的三种方法

    经常有一些小伙伴问,CAD中怎么批量提取坐标点,今天给大家总结三种方法. 方法一:多段线顺序连接并提取. 1.多段线pl连接点: 2.li命令提取坐标: 3.将点位粘贴至excel,利用数据,分列,最 ...

  10. 处理数据中分类变量的三种方法(附代码实现)

    本文是将kaggle Courses中 Categorical Variables | Kaggle进行了翻译并且加入自己的理解,如有地方不清楚,可以查阅原文 文章目录 介绍 三种方法 1)删除分类变 ...

最新文章

  1. angularjs中$http模块发送post请求request payload转form data
  2. html网页访问WebAPI中的方法遇到的问题
  3. Linux-3.2.0.24中内核的Netlink测试使用
  4. 快速轻巧的CQRS和事件源解决方案
  5. 语料库python_NLPPython笔记——语料库
  6. SQL:两种获取时间类型日期部分的方法
  7. Python打包成.exe文件详细实例
  8. 选择checkbox显示隐藏内容
  9. 数学建模——典型相关分析及相关SPSS操作
  10. java中XML转JSON、JSON转XML、XML转对象(Object)、对象(Object)转XML,利用XSD验证XML(手把手教你如何接收、处理、验证XML数据)
  11. 加了尾注怎么添加新页_如何在毕业论文利用尾注添加参考文献之后再续正文
  12. 快恢复二极管工作原理、反向恢复时间详解
  13. EasyBCD and UEFI
  14. Apple Swift学习资料汇总
  15. 浅谈C++11标准中的复制省略(copy elision,也叫RVO返回值优化)
  16. matlab静电场有限元分析
  17. PHP类实例教程(二十):PHP类接口的实现接口
  18. Microsoft OLE DB Provider for ODBC Drivers (0x80004005) 操作必须使用一个可更新的查询”错误的解决办法
  19. angular5解决chrome等浏览器不能播放.m3u8视频流
  20. 超声波风速风向传感器的通讯协议

热门文章

  1. HDLBits答案(23)_找BUG
  2. java正则转义_Java 正则表达式 转义字符
  3. devexpress卸载不干净_最好用的卸载工具,清理彻底,专治各种流氓软件
  4. java弃用标签_Java 9 揭秘(15. 增强的弃用注解)
  5. ssd网络结构_封藏的SSD(Single Shot MultiBox Detector)笔记
  6. VMware中虚拟机与主机不能ping通解决办法
  7. shell脚本学习(一):shell脚本开发的基本规范和习惯
  8. 【OpenStack】OpenStack系列9之Compute节点安装
  9. [转]为mysql数据库建立索引
  10. 使用 Async 和 Await 的异步编程