R語言的內容浩大無邊,我們不可能也沒有必要一次學會所有內容,只需要學會R語言的枝干內容,在實際做項目的時候什么不會再現學什么,這是最高效的方式。所以在學新的內容、遇到bug時,最好的老師就是google和help文檔,讓我們來看看怎樣獲得幫助吧。
幫助
help('list')
#查看list函數的作用和使用方法
?list
#查看list函數的作用和使用方法
apropos('is')
#查看所有包含ls字符的函數
example(list)
#查看list函數的例子
注意:
apropos()里的內容需要加引號(英文的),在R中加引號常常表示字符串,不加引號通常表示變量或函數的名字。apropos('is')表示列出所有含有is字符串的函數。is表示一個字符串,所以需要加引號。而在help('list')中加不加引號都會得到同樣的結果,大家可以試試看。加引號表示要調出包含list字符串的幫助,不加引號表示調出函數list的幫助,在這個例子中,二者運行的結果是一致的。關于引號更多的內容會在字符串變量一節中有詳解。
工作空間
工作空間(workspace)就是當前R的工作環境,它儲存著用戶定義的所有對象(向量、矩陣、函數、數據框、列表) 。工作目錄(working directory)是R用來讀取文件和保存結果的默認目錄。
我們來查看一下當前工作空間中的對象:
> ls()
character(0)
定義一個變量a,查看工作空間的變量:
> a <- 'hello'
> ls()
[1] "a"
刪除這個變量:
rm(a)
刪除工作空間的所有對象:
rm(list=ls())
保存工作空間的所有對象:
save.image()
工作空間保存哪里了?查一下工作目錄在哪里:
getwd()
我的工作目錄是C:\Users\Administrator\Documents,果然在工作目錄中找到了剛才保存的文件,文件類型 .RData 。
改變工作目錄到‘F:\’,注意對windows用戶來講R語言的路徑有特殊性,setwd('F:\’)會報錯,需要寫成下面的兩種方式。在R中所有的路徑都需要寫為上劃線或者雙下劃線。另外不要忘記引號:
setwd('F:\\')
setwd('F:/')
輸入輸出
在啟動R后,一般來講我們通過鍵盤輸入命令,在屏幕上看到結果,不過有時我們需要重復利用R文件,或者把顯示在屏幕上的結果輸出到特定的文檔中。R有可以非常方便控制輸入輸出的函數。
輸入
新建一個R語言腳本,輸入命令print('hello,world'),然后保存為script1.R
到工作目錄中,如果我需要直接用script1.R腳本的執行結果,只需要輸入一下代碼:
>source('script1.R')
[1] "hello,world"
如果文件的位置不是R的工作目錄,那么source括號中要寫文件的完整路徑。同時大家應該注意到了,通過source函數輸入的不是腳本的代碼,而是代碼運行的結果。
輸出文本
sink("filename")將輸出重定向到文件filename中。默認情況下,如果文件已經存在,則它的內容將被覆蓋。使用參數append=TRUE可以將文本追加到文件后,而不是覆蓋它。參數split=TRUE可將輸出同時發送到屏幕和輸出文件中。不加參數調用命令sink()將僅向屏幕返回輸出結果。試著運行以下代碼,然后打開文件script1,輸出結果已經存儲在里面。
>sink('script1.R',append=TRUE,split=TRUE)
>1+1
[1] 2
sink()
圖形輸出
sink函數可以重定向文本輸出,但它對圖形輸出沒有影響。要重定向圖形輸出,可以使用以下幾個函數輸出不同的格式,最后使用dev.off()將輸出返回到屏幕。
函數 | 輸出文件 |
---|---|
pdf("filename.pdf") | PDF 文件 |
win.metafile("filename.wmf") | Windows metafile |
png("filename.png") | PBG 文件 |
jpeg("filename.jpg") | JPEG 文件 |
bmp("filename.bmp") | BMP 文件 |
postscript("filename.ps") | PostScript 文件 |
嘗試以下代碼:
> png('png3')
> a <-1:3
> b <- 2:4
> plot(a,b)
> dev.off()
打開工作目錄下的png3文件,就可以看到繪制的圖表,這是保存R語言繪制的圖表的利器。
`