RStudio簡介
RStudio是R語言的集成開發(fā)環(huán)境(IDE),它是一個獨立的開源項目,它將許多功能強大的編程工具集成到一個直觀、易于學(xué)習(xí)的界面中。RStudio可以在所有主要平臺(Windows、Mac、Linux)上運行,也可以通過web瀏覽器(使用服務(wù)器安裝)運行。如果你是一個R新手或者偏愛界面版的R環(huán)境,那么你會喜歡上RStudio,本書的目的之一即是縮短你與RStudio之間的距離。
RStudio作為一個定期發(fā)布的穩(wěn)定版本,其實在這之間每天都有發(fā)布。
這本書,正如它所寫的那樣,描述了其中一個版本:
0.95.75;當(dāng)前穩(wěn)定的版本是0.94.102。這里描述的一些特性,比如項目特性,目前在穩(wěn)定的版本中是不可用的。
在深入RStudio之前,我們將首先快速概述R和ide。
什么是R語言?
R是一個統(tǒng)計計算和圖形的開源軟件環(huán)境。R在Windows、Mac OS X和許多UNIX平臺(例如 Linux)。對于大多數(shù)平臺,R以二進(jìn)制格式發(fā)布,以便于安裝。R軟件最初是由Robert Gentleman和Ross Ihaka發(fā)起的。這種語言深受S語言的影響,而S語言最初是由約翰·錢伯斯和他的同事在貝爾實驗室開發(fā)的。從那時起,在R的核心開發(fā)團(tuán)隊的指導(dǎo)和人才的幫助下,R已經(jīng)發(fā)展成為學(xué)術(shù)界許多學(xué)科和各行業(yè)統(tǒng)計計算的通用語言。
R不僅僅是它的核心語言。它有一個世界性的存儲系統(tǒng)全面的R檔案網(wǎng)絡(luò)(CRAN) -http://cran.r-project.org -為用戶貢獻(xiàn)的包(packages),以擴充R語言的功能。截至2011年,CRAN上有3000多個這樣的軟件包,其他平臺上還有更多。總的來說,R目前擁有解決大量問題的功能,并且仍有巨大的發(fā)展空間。
R是圍繞其核心腳本語言設(shè)計的,但也允許與用C、c++、Fortran、Java等語言編寫的編譯代碼集成,用于計算密集型任務(wù)或利用為其他語言提供的工具。
什么是IDE?
與其他編程語言一樣,R是通過用戶編寫的函數(shù)擴展(或開發(fā))的。一個集成開發(fā)環(huán)境(IDE),例如RStudio,被設(shè)計來促進(jìn)這樣的工作。此外,與使用圖形用戶界面的許多其他統(tǒng)計軟件包不同,典型的用戶主要通過命令行與R進(jìn)行交互。然后,R的IDE還必須包括以交互方式發(fā)出命令的方法。在這方面R并不是唯一的,交互式科學(xué)編程語言的ide已經(jīng)成熟,包括以下特性:
- 發(fā)出命令的控制臺。
- 源代碼編輯器;在它的核心,開發(fā)涉及到編程的行為,并且這個任務(wù)不可避免地需要一個源代碼編輯器來完成。這樣的編輯已經(jīng)存在一段時間了,現(xiàn)在對編輯的期望很高。典型的期望包括:
- 一組豐富的快捷鍵
- 自動源代碼格式化,括號輔助,關(guān)鍵字突出顯示
- 代碼折疊和易于導(dǎo)航通過一個文件和文件之間
- —上下文敏感的幫助
- 編譯或運行軟件的接口
- 項目管理功能
- 輔助調(diào)試
- 與報告撰寫工具的集成
- 對象瀏覽器;在交互式使用中,用戶的工作空間包括已定義的變量。對象瀏覽器允許用戶快速識別每個此類變量的類型和值。
- 對象編輯器;在對象瀏覽器中,通常提供了檢查或編輯對象的方法。
- 與基礎(chǔ)文檔的集成。
- 繪圖管理工具
已存在的R語言IDE,如表一:
Table 1-1. Some existing IDEs for R
| Name | Platforms | Description |
|---|---|---|
| ESS | All | ESS (http://ess.r-project.org) is a powerful and commonly used interface for R that integrates the venerable emacs editor with R. There are numerous conveniences, but some find that it is difficult to learn and has an old-school feel, which precludes adoption. |
| Eclipse | All | The open-source StatET plugin (http://www.walware.de/goto/statet) turns Eclipse, a Java-based multipurpose IDE, into a full-featured IDE for R. |
| SciViews | All | An R API and extension for the Komodo code editor. |
| JGR | All | Java-based editor that interfaces with R through the rJava and JRI pack?ages. The Deducer package adds a suite of data analysis tools. |
| Tinn-R | Windows | An extension for the Tinn editor that allows integration with an underlying R process. |
| Notepad++ | Windows | With the NpptoR extension allows the Notepad++ editor to interact with an R process. |
| RGui | Windows | The Windows GUI for R has many of the features of an IDE. |
什么是Rstudio?
RStudio項目以一種新穎的方式為IDE提供了大多數(shù)需要的特性,使得使用r變得更容易、更高效。
- IDE的主要組件都很好地集成到一個四面板布局中,其中包括用于交互式R會話的控制臺、用于組織項目文件的帶選項卡的源代碼編輯器,以及用于組織較少中心組件的帶筆記本的面板。
- 源代碼編輯器功能豐富,并與內(nèi)置控制臺集成。
- 通過選項卡完成和幫助頁面查看器組件,控制臺和源代碼編輯器與R的內(nèi)部幫助系統(tǒng)緊密相連。
- 設(shè)置不同的項目很容易,在它們之間進(jìn)行切換甚至更容易。
- RStudio提供了許多方便且易于使用的管理工具,用于管理包、工作區(qū)、文件等。
- IDE可用于三種主要操作系統(tǒng),可以通過web瀏覽器進(jìn)行遠(yuǎn)程訪問。
- RStudio比Emacs/ESS更容易學(xué)習(xí),比Emacs/ESS更容易配置和安裝
Eclipse/StatET擁有比JGR更好的編輯器,比JGR更有組織性
Sciviews不同于notepad++和RGui,它可以在更多的平臺上使用,而不只是windows。
RStudio程序可以在桌面上運行,也可以通過web瀏覽器運行。桌面版適用于Windows、Mac OS X和Linux平臺,在所有平臺上的表現(xiàn)都類似,只是快捷鍵略有不同。
為了實現(xiàn)這種跨平臺性,RStudio在其設(shè)計中利用了大量現(xiàn)有的web技術(shù)。對于桌面應(yīng)用程序,它巧妙地將它們顯示在Qt(一個跨平臺應(yīng)用程序和UI框架)提供的行業(yè)標(biāo)準(zhǔn)HTML小部件中,以創(chuàng)建桌面應(yīng)用程序。因此,R用戶可以有一個豐富和一致的編程環(huán)境R他們的方式-桌面-或基于網(wǎng)絡(luò)?;趙eb的使用并不在“云”中(盡管該服務(wù)可能即將提供),而是可以通過部門或組織內(nèi)的可信服務(wù)器來完成。
RStudio是J. J. Allaire的創(chuàng)意,他和他的兄弟之前在開發(fā)用于web開發(fā)的ColdFusion IDE和腳本語言方面取得了巨大的成功。阿萊爾目前加入非常能干的約瑟夫·程,約書亞·保爾森,和保羅·迪克里斯提娜。在很短的時間內(nèi),他們的初始測試版已經(jīng)可用,他們已經(jīng)證明是非常響應(yīng)用戶輸入。RStudio正在積極開發(fā)中。
因此,這本書中所討論的內(nèi)容可能會隨著你的閱讀而改變。抱歉,但你用這個新功能可能比我所描述的更好.
和R一樣,RStudio也是一個開源項目。它規(guī)定的目標(biāo)已經(jīng)實現(xiàn)了
-是開發(fā)一個強大的工具,支持創(chuàng)建值得信賴的高質(zhì)量分析所需的實踐和技術(shù)。代碼庫是在AGPLv3許可下發(fā)布的,可以從GitHub上獲得(https://github.com/rstudio/rstudio)。RStudio是建立在許多其他開源項目之上的。其中最明顯的是GWT,谷歌的Web Toolkit;Qt,諾基亞的圖形工具包;以及JavaScript代碼編輯器Ace (http://ace.ajax.org)。RStudio的About對話框中列出了其他的杠桿項目。
大部分代碼是用c++和Java編寫的,它們都是使用GWT的語言。
使用RStudio
我們將從啟動RStudio的過程開始,將安裝問題推遲一段時間。由于RStudio可以從桌面或通過服務(wù)器使用,所以有兩種啟動它的方法。
桌面版本
對于桌面版本,RStudio與大多數(shù)其他應(yīng)用程序一樣啟動。在圖1-1中,我們看到在Mac OS x下運行的應(yīng)用程序。對于Windows用戶,安裝過程會留下一個菜單項。對于Linux用戶,命令rstudio將打開窗口。它也可以安裝一個菜單項,就像Ubuntu一樣,它出現(xiàn)在菜單項中。

[圖片上傳失敗...(image-d47d47-1579013831251)]
在圖1-1中,我們看到三個主要組件:控制臺,任何R用戶都應(yīng)該熟悉它;工作空間瀏覽器(沒有項目,因為初始工作空間是空的)和歷史記錄接口。后兩個是包含其他組件的筆記本的一部分。源代碼組件(或代碼編輯器)在屏幕快照中沒有打開,因為沒有打開文件供編輯或查看。
服務(wù)器版
啟動服務(wù)器版本需要知道服務(wù)器的適當(dāng)URL。
我們?yōu)檫@本書使用了一個本地URL,但是真正的價值來自于在更廣泛的internet上使用RStudio作為資源。在訪問RStudio時,必須首先進(jìn)行身份驗證。
這樣做的基本屏幕如圖1-2所示。身份驗證取決于服務(wù)器,但默認(rèn)情況下是根據(jù)計算機上的用戶帳戶進(jìn)行身份驗證,因此web管理員應(yīng)該提供訪問RStudio的安全方法。
通過身份驗證后,布局看起來與桌面版本比較相似
從圖1-1到圖1-3可以看到這個。一個主要的區(qū)別是菜單欄的位置。在桌面圖中,在Mac OS X下,菜單欄按照操作系統(tǒng)的自定義放置,與應(yīng)用程序分離,位于屏幕頂部
-不集成到RStudio GUI中。對于服務(wù)器版本,菜單欄出現(xiàn)在應(yīng)用程序主工具欄的上方。

[圖片上傳失敗...(image-30e2de-1579013831251)]

[圖片上傳失敗...(image-d4e29e-1579013831251)]
在使用服務(wù)器版本時,每個用戶只能打開一個實例。如果在不同的機器上啟動了一個新會話,或者只是在同一個瀏覽器的不同選項卡上啟動了一個新會話,舊的會話就會斷開連接并發(fā)出通知。
工作空間
當(dāng)R啟動時,其過程如下:
- 在工作目錄中啟動R。
- 如果存在,則執(zhí)行. rprofile文件的命令。
- 如果存在,則加載. rdata文件。
- 遵循?Startup中描述的其他操作。
當(dāng)退出時,用戶被詢問“保存工作區(qū)圖像?”當(dāng)工作空間被保存時,它將內(nèi)容寫到一個. rdata文件中,這樣當(dāng)R重新啟動時,工作空間可以在會話之間保持。(你也可以用save.image啟動它。)
此過程允許R用戶將希望在每個會話中運行的命令放置在. rprofile文件中,并為每個目錄擁有. rdata文件,以便不同的全局工作區(qū)可以用于不同的項目。
項目
RStudio提供了一個非常有用的“Projects”特性,允許用戶在項目之間快速切換。每個項目在源組件中可能有不同的工作目錄、工作區(qū)和文件集合。當(dāng)前項目名稱列在主應(yīng)用程序工具欄最右側(cè)的組合框中,該組合框允許在打開的項目、打開現(xiàn)有項目或創(chuàng)建新項目之間切換。
新項目只需要一個名稱和一個工作目錄。這個特性非常適合RStudio,因為當(dāng)它作為web應(yīng)用程序運行時,由于web連接的性質(zhì),需要序列化和恢復(fù)會話。在項目之間切換與選擇開放項目一樣簡單。RStudio只序列化舊的文件并還原新選擇的文件。
R
RStudio不需要運行特殊版本的R,只要它是一個相當(dāng)現(xiàn)代的版本。它將與來自CRAN或用戶編譯版本的二進(jìn)制版本一起工作。因此,當(dāng)RStudio啟動時,它必須能夠定位R的一個版本,這個版本可能駐留在許多不同的地方。通常RStudio只找到正確的,但是可以繞過搜索過程。在線文檔http://www.rstudio.org/docs/advanced/versions_of_r詳細(xì)說明了如何指定使用哪個R安裝。簡而言之,它取決于底層操作系統(tǒng)。對于Windows桌面用戶來說,可能是這樣
使用在選項對話框中指定的RStudio | 7(“選項對話框”在第9頁)
Mac OS X用戶可以設(shè)置一個環(huán)境變量,如下圖所示:
$ export RSTUDIO_WHICH_R=/usr/local/bin/R
基于web的用戶真的沒有選擇,因為這是由誰來配置服務(wù)器決定的。
組件布局
RStudio接口由工具欄和菜單欄下面的幾個主要組件組成。雖然這個位置可以調(diào)整,但默認(rèn)布局在以下位置使用四個主面板或窗格:
左上角是一個用于編輯文件的源瀏覽器筆記本(參見“源代碼”)
編輯"在63頁)或查看一些數(shù)據(jù)集。在圖1-3中,這是不可見的,因為該會話沒有打開任何文件。左下角是一個與R進(jìn)程交互的控制臺(第3章)。
右上角是一個記事本小部件,用于存放一個工作空間瀏覽器(“Workspace”)
瀏覽器"在第38頁)和歷史瀏覽器("命令歷史"在第36頁)。右下角是一個筆記本,用來記錄與文件交互的選項卡(“the”)
文件瀏覽器"在71頁),情節(jié)("瀏覽器"在45頁),包
(“包維護(hù)”在第73頁),以及幫助系統(tǒng)組件(“幫助”)
頁面查看器"在第42頁)。
控制臺窗格有一些特權(quán):它總是可見的,并且有一個標(biāo)題欄。其他組件使用記事本小部件,頁面選項卡用作標(biāo)題欄。這些頁面具有特定于頁面的工具欄(可能不止一個),在使用源組件也與上下文相關(guān)。
用戶可以更改每個窗格的默認(rèn)空間分配。在界面的左右兩邊中間出現(xiàn)了一個窗框,可以讓用戶調(diào)整空間的橫向分配。此外,每一面都有另一個窗框來分配兩個窗格之間的垂直空間。此外,每個窗格的標(biāo)題欄都有圖標(biāo),用于為組件添加陰影、垂直最大化組件或共享空間。
??旖萱I
可以使用鼠標(biāo)輕松地在組件之間切換。同樣,視圖菜單欄也有用于此任務(wù)的子項。對于高級用戶,鍵盤加速器列在
表1-2是有用的。(通過幫助>可以獲得完整的鍵盤快捷鍵列表
快捷鍵菜單項。)
| Description | Windows& Linux | Mac | |
|---|---|---|---|
| Move cursor to Source Editor | Ctrl+1 | Ctrl+1 | |
| Move cursor to Console | Ctrl+2 | Ctrl+2 | |
| Show workspace | Ctrl+3 | Ctrl+3 | |
| Show data | Ctrl+4 | Ctrl+4 | |
| Show history | Ctrl+5 | Ctrl+5 | |
| Show files | Ctrl+6 | Ctrl+6 | |
| Show plots | C | trl+7 | Ctrl+7 |
| Show packages Ctrl+8 | Ctrl+8 | ||
| Show help | Ctrl+9 | Ctrl+9 |
對話框項
通過選項對話框調(diào)整RStudio首選項。這個對話框有四個面板可以調(diào)整:通用屬性、編輯屬性(圖3-4)、外觀屬性和窗格布局(圖1-4)。
