R对象
有时候你需要放下正在做的R工作,在其它时间来接着分析;或者要同时进行多个分析,这些分析都使用 R,并且您希望将它们分开;要处理这些现实生活中的情况,您需要做出两个决定:
-
那么你的分析是“真实的”,即你将保存什么作为你对发生的事情的持久记录?
-
您的分析“保存”在哪里?
3.1 真实存在的东西?
作为 R 初学者,可以考虑您“真实”的环境(即环境窗格中列出的对象)。但是,从长远来看,如果您认为 R 脚本是“真实的”,您的情况会好得多。
使用 R 脚本(和数据文件),您可以重新创建环境。从环境中重新创建 R 脚本要困难得多!您要么必须从内存中重新键入大量代码(始终出错),要么必须仔细挖掘您的 R 历史记录。
为了培养这种行为,我强烈建议,指示 RStudio 不要在会话之间保留您的工作区:
image短期来说,这可能是比较麻烦的事情,但是长远来考虑的话,这将会为你节省很多的运算时间,提高工作效率。
以下两个快捷键非常有用:
- 按 Cmd/Ctrl + Shift + F10 重新启动 RStudio。
- 按 Cmd/Ctrl + Shift + S 重新运行当前脚本。
3.2 在哪里执行你的分析?
R 有一个工作目录。这是 R 查找您要求它加载的文件的位置,即是放置保存的任何文件的位置。RStudio 在控制台顶部显示您当前的工作目录:
image你可以通过运行getwd()在 R 代码中打印出来当前工作目录:
getwd()
#> [1] "/Users/hadley/Documents/r4ds/r4ds"
作为 R 的初学者,可以让您的主目录、文档目录或计算机上任何其他奇怪的目录成为 R 的工作目录。
setwd("work_dir")
可以从 R 中设置工作目录:
setwd("/path/to/my/CoolProject")
3.3 路径和目录
路径和目录有点复杂,因为路径有两种基本样式:Mac/Linux 和 Windows。它们的主要有以下三种区别:
-
最重要的区别在于您如何分离路径。Mac 和 Linux 使用斜杠(例如
plots/diamonds.pdf
),Windows 使用反斜杠(例如plots\diamonds.pdf
)。R 可以使用任何一种类型(无论您当前使用什么平台),但不幸的是,反斜杠对 R 有特殊意义,如果要在路径中获得一个反斜杠,您需要键入两个反斜杠!这样操作比较繁琐,因此我建议始终使用带有正斜杠的 Linux/Mac 样式。 -
绝对路径(即无论您的工作目录如何都指向同一位置的路径)看起来不同。在 Windows 中,它们以一个驱动器号(例如
C:
)或两个反斜杠(例如\\servername
)开头,而在 Mac/Linux 中它们以斜杠“/”(例如/users/hadley
)开头 。你永远不应该在你的脚本中使用绝对路径,因为它们不利于共享:其他人的目录与你配置的目录不一定相同。 -
最后一个小区别是~指向的地方。~是您的主目录的便捷快捷方式。Windows 并没有真正的主目录的概念,因此它指向您的文档目录。
3.4 RStudio 对象
经常使用R的人会将与项目相关的所有文件保存在一起——输入数据、R 脚本、分析结果、数字。这是一个非常明智和普遍的做法,RStudio 通过*Project为此提供了内置支持。
让我们生成一个对象供您在阅读本书其余部分时使用。单击文件 > 新建项目,然后:
image image image调用你的项目r4ds
,仔细想想你把项目放在哪个子目录。如果你不把它存放在一个合理的地方,以后很难找到它!
完成此过程后,您将获得一个专用于本书的新 RStudio 项目。检查项目的“home”目录是否为当前工作目录:
getwd()
#> [1] /Users/hadley/Documents/r4ds/r4ds
每当您引用具有相对路径的文件时,它都会在此处查找。
现在在脚本编辑器中输入以下命令,并保存文件,命名为“diamonds.R”。接下来,运行完整的脚本,该脚本会将 PDF 和 CSV 文件保存到您的项目目录中。
library(tidyverse)
ggplot(diamonds, aes(carat, price)) +
geom_hex()
ggsave("diamonds.pdf")
write_csv(diamonds, "diamonds.csv")
退出 RStudio。检查与您的项目关联的文件夹 ——注意.Rproj
文件。双击该文件将重新打开该项目。请注意,您将回到上次中断的地方:它是相同的工作目录和命令历史记录,并且您正在处理的所有文件仍处于打开状态。因为您遵循了我上面的说明,所以您将拥有一个全新的环境,保证您从一个干净的石板开始。
用你最喜欢的特定操作系统的方式,在你的电脑上搜索diamonds.pdf
,你会找到这个PDF(毫无疑问),还有创建它的脚本(diamonds.R
)。
3.5总结
总之,RStudio 项目为您提供了一个可靠的工作环境,它将在未来为您提供更好的服务:
-
为每个数据分析项目创建一个 RStudio 项目。
-
将数据文件保存在相应的位置。
-
脚本保存;编辑脚本,按行或整体运行它们。
-
保存您的输出(绘图和清理过的数据)。
-
只使用相对路径,而不是绝对路径。
您需要的一切都在一个地方,并与您正在处理的所有其他项目完全分开。
网友评论