R语言第一讲
?一、R語言入門推薦
練習源碼:
install.packages('ggplot2') library(ggplot2) update.packages()v = c(1,4,4,3,2,2,3) v[c(2,3,4)] v[2:4] v[c(2,4,3)] v[-2] v[-2:-4] v[v<3] which(v==3) set.seed(250) a = runif(3, min=0, max=100) floor(a) #向下保留整數的函數 ceiling(a) #向上保留整數的函數 round(a,4) #保留四位小數? ? ? ? R提供了大量的幫助功能,學會如何使用這些幫助文檔可以在相當程度上助力你的編程工作。 R的內置幫助系統提供了當前已安裝包中所有函數①的細節、參考文獻以及使用示例。幫助文檔可 以通過表1-2中列出的函數進行查看。?
? ? ? ? 函數help.start()會打開一個瀏覽器窗口,我們可在其中查看入門和高級的幫助手冊、常 見問題集,以及參考材料。函數RSiteSearch()可在在線幫助手冊和R-Help郵件列表的討論存 檔中搜索指定主題,并在瀏覽器中返回結果。由函數vignette()函數返回的vignette文檔一般是 PDF格式的實用介紹性文章。
三、了解工作空間
? ? ? ? ?工作空間(workspace)就是當前R的工作環境,它儲存著所有用戶定義的對象(向量、矩陣、 函數、數據框、列表)。在一個R會話結束時,你可以將當前工作空間保存到一個鏡像中,并在下 次啟動R時自動載入它。各種命令可在R命令行中交互式地輸入。使用上下方向鍵查看已輸入命 令的歷史記錄。這樣我們就可以選擇一個之前輸入過的命令并適當修改,最后按回車重新執行它。
?當前的工作目錄(working directory)是R用來讀取文件和保存結果的默認目錄。我們可以使 用函數getwd()來查看當前的工作目錄,或使用函數setwd()設定當前的工作目錄。如果需要讀 入一個不在當前工作目錄下的文件,則需在調用語句中寫明完整的路徑。記得使用引號閉合這些 目錄名和文件名。?
1、 建立一個R語言學習的工作空間
? ? ?首先自己建立一個文件夾,用來存放你的R工程項目目錄。
? ? ?建立? : G:\RWorkSpace\project1
setwd("G:/RWorkSpace/project1") options() options(digits = 3) x<-runif(20) summary(x) hist(x) savehistory() save.image() q()? ? ? ?首先,當前工作目錄被設置為C:/myprojects/project1,當前的選項設置情況將顯示出來,而 數字將被格式化,顯示為具有小數點后三位有效數字的格式。然后,我們創建了一個包含20個均 勻分布隨機變量的向量,生成了此數據的摘要統計量和直方圖。最后,命令的歷史記錄保存到文 件.Rhistory中,工作空間(包含向量x)保存到文件.RData中,會話結束。 注意setwd()命令的路徑中使用了正斜杠。R將反斜杠(\)作為一個轉義符。即使在Windows 平臺上運行R,在路徑中也要使用正斜杠。同時注意,函數setwd()不會自動創建一個不存在的 目錄。如果必要的話,可以使用函數dir.create()來創建新目錄,然后使用setwd()將工作目 錄指向這個新目錄。 在獨立的目錄中保存項目是一個好主意。我通常會在啟動一個R會話時使用setwd()命令指 定到某一個項目的路徑,后接不加選項的load()命令。這樣做可以讓我從上一次會話結束的地 方重新開始,并保證各個項目之間的數據和設置互不干擾。在Windows和Mac OS X平臺上就更簡單了。跳轉到項目所在目錄并雙擊保存的鏡像文件即可。這樣做可以啟動R,載入保存的工作空 間,并設置當前工作目錄到這個文件夾中。?
四、輸入輸出
? ? ? ?啟動R后將默認開始一個交互式的會話,從鍵盤接受輸入并從屏幕進行輸出。不過你也可以 處理寫在一個腳本文件(一個包含了R語句的文件)中的命令集并直接將結果輸出到多類目標中。
?1. 輸入 函數source("filename")可在當前會話中執行一個腳本。如果文件名中不包含路徑,R將 假設此腳本在當前工作目錄中。舉例來說,source("myscript.R")將執行包含在文件 myscript.R中的R語句集合。依照慣例,腳本文件以.R作為擴展名,不過這并不是必需的。
2. 文本輸出 函數sink("filename")將輸出重定向到文件filename中。默認情況下,如果文件已經存 在,則它的內容將被覆蓋。使用參數append=TRUE可以將文本追加到文件后,而不是覆蓋它。 參數split=TRUE可將輸出同時發送到屏幕和輸出文件中。不加參數調用命令sink()將僅向屏幕 返回輸出結果。
3. 圖形輸出 雖然sink()可以重定向文本輸出,但它對圖形輸出沒有影響。要重定向圖形輸出,使用 列出的函數即可。最后使用dev.off()將輸出返回到終端。?
總結
- 上一篇: LeetCode第 227 场周赛题解
- 下一篇: Codeforces Round #69