R對(duì)象
有時(shí)候你需要放下正在做的R工作铸屉,在其它時(shí)間來接著分析退子;或者要同時(shí)進(jìn)行多個(gè)分析岖妄,這些分析都使用 R,并且您希望將它們分開寂祥;要處理這些現(xiàn)實(shí)生活中的情況荐虐,您需要做出兩個(gè)決定:
那么你的分析是“真實(shí)的”,即你將保存什么作為你對(duì)發(fā)生的事情的持久記錄丸凭?
您的分析“保存”在哪里福扬?
3.1 真實(shí)存在的東西腕铸?
作為 R 初學(xué)者,可以考慮您“真實(shí)”的環(huán)境(即環(huán)境窗格中列出的對(duì)象)忧换。但是恬惯,從長遠(yuǎn)來看,如果您認(rèn)為 R 腳本是“真實(shí)的”亚茬,您的情況會(huì)好得多酪耳。
使用 R 腳本(和數(shù)據(jù)文件),您可以重新創(chuàng)建環(huán)境刹缝。從環(huán)境中重新創(chuàng)建 R 腳本要困難得多碗暗!您要么必須從內(nèi)存中重新鍵入大量代碼(始終出錯(cuò)),要么必須仔細(xì)挖掘您的 R 歷史記錄梢夯。
為了培養(yǎng)這種行為言疗,我強(qiáng)烈建議,指示 RStudio 不要在會(huì)話之間保留您的工作區(qū):
短期來說颂砸,這可能是比較麻煩的事情噪奄,但是長遠(yuǎn)來考慮的話,這將會(huì)為你節(jié)省很多的運(yùn)算時(shí)間人乓,提高工作效率勤篮。
以下兩個(gè)快捷鍵非常有用:
- 按 Cmd/Ctrl + Shift + F10 重新啟動(dòng) RStudio。
- 按 Cmd/Ctrl + Shift + S 重新運(yùn)行當(dāng)前腳本色罚。
3.2 在哪里執(zhí)行你的分析碰缔?
R 有一個(gè)工作目錄。這是 R 查找您要求它加載的文件的位置戳护,即是放置保存的任何文件的位置金抡。RStudio 在控制臺(tái)頂部顯示您當(dāng)前的工作目錄:
你可以通過運(yùn)行getwd()在 R 代碼中打印出來當(dāng)前工作目錄:
getwd()
#> [1] "/Users/hadley/Documents/r4ds/r4ds"
作為 R 的初學(xué)者,可以讓您的主目錄腌且、文檔目錄或計(jì)算機(jī)上任何其他奇怪的目錄成為 R 的工作目錄梗肝。
setwd("work_dir")
可以從 R 中設(shè)置工作目錄:
setwd("/path/to/my/CoolProject")
3.3 路徑和目錄
路徑和目錄有點(diǎn)復(fù)雜,因?yàn)槁窂接袃煞N基本樣式:Mac/Linux 和 Windows铺董。它們的主要有以下三種區(qū)別:
最重要的區(qū)別在于您如何分離路徑统捶。Mac 和 Linux 使用斜杠(例如
plots/diamonds.pdf
),Windows 使用反斜杠(例如plots\diamonds.pdf
)柄粹。R 可以使用任何一種類型(無論您當(dāng)前使用什么平臺(tái))喘鸟,但不幸的是,反斜杠對(duì) R 有特殊意義驻右,如果要在路徑中獲得一個(gè)反斜杠什黑,您需要鍵入兩個(gè)反斜杠!這樣操作比較繁瑣堪夭,因此我建議始終使用帶有正斜杠的 Linux/Mac 樣式愕把。絕對(duì)路徑(即無論您的工作目錄如何都指向同一位置的路徑)看起來不同拣凹。在 Windows 中,它們以一個(gè)驅(qū)動(dòng)器號(hào)(例如
C:
)或兩個(gè)反斜杠(例如\\servername
)開頭恨豁,而在 Mac/Linux 中它們以斜杠“/”(例如/users/hadley
)開頭 嚣镜。你永遠(yuǎn)不應(yīng)該在你的腳本中使用絕對(duì)路徑,因?yàn)樗鼈儾焕诠蚕恚浩渌说哪夸浥c你配置的目錄不一定相同橘蜜。最后一個(gè)小區(qū)別是~指向的地方菊匿。~是您的主目錄的便捷快捷方式。Windows 并沒有真正的主目錄的概念计福,因此它指向您的文檔目錄跌捆。
3.4 RStudio 對(duì)象
經(jīng)常使用R的人會(huì)將與項(xiàng)目相關(guān)的所有文件保存在一起——輸入數(shù)據(jù)、R 腳本象颖、分析結(jié)果佩厚、數(shù)字。這是一個(gè)非常明智和普遍的做法说订,RStudio 通過*Project為此提供了內(nèi)置支持抄瓦。
讓我們生成一個(gè)對(duì)象供您在閱讀本書其余部分時(shí)使用。單擊文件 > 新建項(xiàng)目陶冷,然后:
調(diào)用你的項(xiàng)目r4ds
,仔細(xì)想想你把項(xiàng)目放在哪個(gè)子目錄埃叭。如果你不把它存放在一個(gè)合理的地方摸恍,以后很難找到它悉罕!
完成此過程后赤屋,您將獲得一個(gè)專用于本書的新 RStudio 項(xiàng)目。檢查項(xiàng)目的“home”目錄是否為當(dāng)前工作目錄:
getwd()
#> [1] /Users/hadley/Documents/r4ds/r4ds
每當(dāng)您引用具有相對(duì)路徑的文件時(shí)壁袄,它都會(huì)在此處查找类早。
現(xiàn)在在腳本編輯器中輸入以下命令,并保存文件嗜逻,命名為“diamonds.R”涩僻。接下來,運(yùn)行完整的腳本栈顷,該腳本會(huì)將 PDF 和 CSV 文件保存到您的項(xiàng)目目錄中逆日。
library(tidyverse)
ggplot(diamonds, aes(carat, price)) +
geom_hex()
ggsave("diamonds.pdf")
write_csv(diamonds, "diamonds.csv")
退出 RStudio。檢查與您的項(xiàng)目關(guān)聯(lián)的文件夾 ——注意.Rproj
文件萄凤。雙擊該文件將重新打開該項(xiàng)目室抽。請(qǐng)注意,您將回到上次中斷的地方:它是相同的工作目錄和命令歷史記錄靡努,并且您正在處理的所有文件仍處于打開狀態(tài)坪圾。因?yàn)槟裱宋疑厦娴恼f明晓折,所以您將擁有一個(gè)全新的環(huán)境,保證您從一個(gè)干凈的石板開始兽泄。
用你最喜歡的特定操作系統(tǒng)的方式漓概,在你的電腦上搜索diamonds.pdf
,你會(huì)找到這個(gè)PDF(毫無疑問)病梢,還有創(chuàng)建它的腳本(diamonds.R
)胃珍。
3.5總結(jié)
總之,RStudio 項(xiàng)目為您提供了一個(gè)可靠的工作環(huán)境飘千,它將在未來為您提供更好的服務(wù):
為每個(gè)數(shù)據(jù)分析項(xiàng)目創(chuàng)建一個(gè) RStudio 項(xiàng)目堂鲜。
將數(shù)據(jù)文件保存在相應(yīng)的位置。
腳本保存护奈;編輯腳本缔莲,按行或整體運(yùn)行它們。
保存您的輸出(繪圖和清理過的數(shù)據(jù))霉旗。
只使用相對(duì)路徑痴奏,而不是絕對(duì)路徑。
您需要的一切都在一個(gè)地方厌秒,并與您正在處理的所有其他項(xiàng)目完全分開读拆。