r语言中的或怎么表示什么不同_R经典入门 之 R语言的基本原理与概念 -- 200430
一、基本原理
R是一種解釋型語言,輸入的命令可以直接被執行,不同于C等編譯語言需要構成完整的程序才能運行。
R的語法非常簡單和直觀。合法的R函數總是帶有圓括號的形式,即使括號內沒有內容(如,ls())。所有函數后都接有圓括號以區別于對象(object)。
所有能使用的R函數都被包含在一個庫(library) 中,該庫存放在磁盤的R HOME/library目錄下(R HOME是最初安裝R的地址)。這個目錄下含有具有各種功能的包(packages),各個包也是按照目錄的方式組織起來的。其中名為base的包可以算是R的核心,因為它內嵌了R語言中所有像數據讀寫與操作這些最基本的函數。在上述目錄中的每個包內,都有一個子目錄R,這個目錄里又都含有一個與此包同名的文件(例如在包base中,有這樣一個文件R HOME/library/base/R/base)。該文件正是存放所有函數的地方。
R語言中最簡單的命令就是通過一個對象來顯示其內容。如,一個名為name的對象,其內容為‘content’
name
name
## [1] "content"
或使用函數輸出對象的內容
print(name)
## [1] "content"
注:對象的名字必須是以一個字母開頭(A–Z 或a–z), 中間可以包含字母,數字(0–9),點(.)及下劃線( ).因為R對對象的名字區分大小寫,所以x 和X就可以代表兩個完全不同的對象(在Windows操作系統中也是如此)。
二、對象的產生、排列及刪除
一個對象可以通過賦值操作來產生,R語言中的賦值(“assign”) 符號一般是由一個尖括號與一個負號組成的箭頭形標志。該符號可以是從左到右的方向,也可以相反:
n
n
## [1] "hello, world"
n -> 'hello, world'
n
## [1] "hello, world"
如果該對象已經存在,那么它以前的值將會自動被新值沖掉(這種修改只會影響內存中的數據,操作結果暫時不會被保存到硬盤中)。
n
n
## [1] "Goodbye"
函數ls的功能是顯示所有在內存中的對象:只會列出對象名。注意在R中應該用分號來隔開同一行中的不同命令語句。
name
ls()
## [1] "hello, world" "m" "n" "name"
如果只要顯示出在名稱中帶有某個指定字符的對象,則通過設定選項pattern 來實現(可簡寫為pat).
ls(pat = 'n')
## [1] "n" "name"
ls(pattern = 'm')
## [1] "m" "name"
如果進一步限制顯示為在名稱中以某個字母開頭的對象
ls(pattern = '^m')
## [1] "m"
運行ls.str()將會顯示內存中所有對象的詳細信息ls.str 將會列出關于對象的所有信息,包括數據框,矩陣,數據列表的列數信息。
ls.str()
## hello, world : chr "hello, world"
## m : chr "monkey"
## n : chr "noodles"
## name : chr "content"
f
ls.str(pattern = 'f')
## f : 'data.frame': 1 obs. of 3 variables:
## $ n : Factor w/ 1 level "noodles": 1
## $ m : Factor w/ 1 level "monkey": 1
## $ name: Factor w/ 1 level "content": 1
設定max.level可改變對象的顯示內容。
print(ls.str(pattern = 'f'), max.level = -1)
## f : 'data.frame': 1 obs. of 3 variables:
print('###')
## [1] "###"
print(ls.str(pattern = 'f'), max.level = 1)
## f : 'data.frame': 1 obs. of 3 variables:
## $ n : Factor w/ 1 level "noodles": 1
## $ m : Factor w/ 1 level "monkey": 1
## $ name: Factor w/ 1 level "content": 1
要在內存中刪除某個對象,可利用函數rm:運行rm(x)將會刪除對象x,運行rm(x,y)將會刪除對象x和y,而運行rm(list=ls())則會刪除內存中的所有對象.
ls()
## [1] "f" "hello, world" "m" "n" "name"
rm(f)
ls()
## [1] "hello, world" "m" "n" "name"
rm(n, m)
ls()
## [1] "hello, world" "name"
rm(list = ls(pattern = '^h'))
ls()
## [1] "name"
三、在線幫助
R中給予的在線幫助能提供關于如何使用函數的非常有用的信息。
?print #查看特定函數的幫助.
## starting httpd help server ... done
help(print)
help('print')
對初學者而言,參考幫助中Examples部分的信息是很有用的。而一般應該仔細閱讀Arguments中的一些說明也是非常有必要的。幫助中還包含了其它一些說明部分,如Note, References或Author(s)等。
查詢關于某特殊語法意義字符的幫助。
# help(*)
help("*")
默認狀態下,函數help只會在被載入內存中的包中搜索。選項try.all.package在缺省值是FALSE,但如果把它設為TRUE,則可在所有包中進行搜索。
help('bs')
## No documentation for 'bs' in specified packages and libraries:
## you could try '??bs'
help('bs', try.all.packages = TRUE)
但注意在這種情況下,不會顯示關于函數bs的幫助頁面,如果使用者確實想打開這樣的頁面而所屬包又沒有被載入內存時,可以使用package這個選項.
help('bs', package = 'splines')
Html格式的幫助可以通過輸入下面的函數啟動.在html格式的幫助頁面中還可以使用關鍵詞進行搜索.
help.start()
## If nothing happens, you should open
## 'http://127.0.0.1:31375/doc/html/index.html' yourself
使用函數apropos則能找出所有在名字中含有指定字符串的函數,但只會在被載入內存中的包中進行搜索
apropos("help")
## [1] "help" "help.request" "help.search" "help.start"
總結
以上是生活随笔為你收集整理的r语言中的或怎么表示什么不同_R经典入门 之 R语言的基本原理与概念 -- 200430的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java导出csv文件_R语言数据导入与
- 下一篇: 智能车辆手册 pdf_SIMULINK在