r语言清除变量_R语言(1)初识与数据结构
a picture is worth a thousand words!
一,R語言簡介
1,R語言的發(fā)展
上世紀(jì)90年代初,新西蘭奧克蘭大學(xué) Ross Ihaka 和 Robert Gentleman 嘗試構(gòu)建了一個統(tǒng)計環(huán)境。
Ross Ihaka? ? ?Robert Gentleman
1997年以后,形成了一個核心團(tuán)隊對R 語言源代碼進(jìn)行管理與修改。
S語言:
1976年貝爾實驗室發(fā)展起來的數(shù)據(jù)交互分析系統(tǒng);是一種高級程序語言,很好地統(tǒng)計應(yīng)用快速開發(fā)系統(tǒng)。
關(guān)于S語言更多信息見:
http://cm.bell-labs.com/cm/ms/departments/sia/S/history.html
Scheme語言:
Scheme 語言是計算機表面處理語言,該語言用于處理包含有表格的數(shù)據(jù)的編程語言,被廣泛地運用于人工智能研究。
更多內(nèi)容:
http://swiss.csail.mit.edu/projects/scheme/
簡單的來說,
2,R語言軟件與環(huán)境
本人所使用的是3.6.3版本,R語言版本發(fā)展較快,通常幾個月就會發(fā)布新的版本。最新版本鏈接如下:
https://cran.r-project.org/src/base/R-4/
deprecated:由于R版本問題會出現(xiàn)函數(shù)棄用。
已經(jīng)到了4.0.3,通常大版本號的更新會伴隨著軟件包的不穩(wěn)定。
R語言3.6.3界面——遠(yuǎn)古,有年代感!!!
關(guān)于R studio:R studio是R的圖形界面之一,可以讓R語言代碼更直觀、明了地運行。RStudio同樣是免費和開源的,可以在網(wǎng)站上自由下載與使用。
http://www.rstudio.com/ide/download/
R studio界面-看起來好多了
R studio的優(yōu)點:
代碼字體高亮,代碼完整性智能識別、自動縮進(jìn);
可直接執(zhí)行R 程序代碼;
可運行多個R 程序;
可直接瀏覽工作表和數(shù)據(jù);
可隨意縮放繪制的圖形,并且有多種輸出格式;
整合R 幫助和R 使用文檔;
可查看R 命令的運行記錄。
3,關(guān)于R語言的幾個重要概念
使用期 (Session): : R系統(tǒng)啟動到結(jié)束之間的時間段
對 象 (Object): : 由R建立或處理的實體,包括變量、向量、矩陣、組合、函數(shù)等
歷 史 史? (Histroy): : R 使 用 期 間 所 應(yīng) 用 的 歷 史 記 錄(.Rhistroy)
工 作 空 間? (Workspace): : 當(dāng) 前 被 存 儲 對 象 的 集 合(.Rdata)。不但包括對象而且包含了對象的系統(tǒng)環(huán)境;當(dāng)一次使用完畢要關(guān)閉R時,R會詢問是否保存工作空間
軟件包 (Package): : 執(zhí)行一定功能的函數(shù)、數(shù)據(jù)等的集合,一些內(nèi)置于R系統(tǒng)內(nèi),大部分外置于網(wǎng)絡(luò)。
4,R語言的工作方式
命令行輸入按回車鍵執(zhí)行。
命令行由變量、運算符、賦值符號或函數(shù)組成
一行可以執(zhí)行一個命令或多個命令,如果是多個命令,
命令之間以“;” 隔開。
命令行中空格不影響命令執(zhí)行
R 退出命令為q()
#關(guān)于R語言的基本介紹就到這里了,具體的細(xì)節(jié)可查閱相關(guān)書籍。
二,R語言基本數(shù)據(jù)結(jié)構(gòu)(按對象來劃分)
向量(vector)
列表(list)
矩陣(matrix)
數(shù)組(array)
因子(factor)
數(shù)據(jù)框(data.frame)
1,向量(vector)
x y=log(x)plot(x,y)#圖像如下#截取y[1]#結(jié)果0y[1:3]#結(jié)果:0.0000000 0.6931472 1.0986123y[-4]#表示不取第四個數(shù)字對應(yīng)的y值。結(jié)果為:0.0000000 0.6931472 1.0986123y[y>1]#也可以進(jìn)行嵌套。結(jié)果:1.098612 1.386294plot(x,y)
2,列表(list):列表可以用list函數(shù)創(chuàng)建,方法與創(chuàng)建數(shù)據(jù)框類似。它對其中包含的對象類型沒有限制。
x L1 L1; L2####結(jié)果####[[1]][1]?1?2?3?4[[2]][1]?2?3?4$A[1]?1?2?3?4$B[1] 2 3 43,矩陣(matrix)
R 語言為線性代數(shù)的研究提供了矩陣類型,這種數(shù)據(jù)結(jié)構(gòu)很類似于其它語言中的二維數(shù)組,但 R 提供了語言級的矩陣運算支持。
矩陣?yán)锏脑乜梢允菙?shù)字、符號或數(shù)學(xué)式。語法格式如下:
matrix(data?=?NA,?nrow?=?1,?ncol?=?1,?byrow?=?FALSE,dimnames?=?NULL)data?向量,矩陣的數(shù)據(jù)nrow?行數(shù)ncol?列數(shù)byrow?邏輯值,為?FALSE?按列排列,為?TRUE?按行排列dimname 設(shè)置行和列的名稱合并向量或矩陣:
m1 rbind(m1, m2); cbind(m1, m2)# [,1] [,2][1,] 1 1[2,] 1 1[3,] 2 2[4,] 2 2 [,1] [,2] [,3] [,4][1,] 1 1 2 2[2,] 1 1 2 2矩陣乘積的運算:
rbind(m1, m2) %*% cbind(m1, m2) # [,1] [,2] [,3] [,4][1,] 2 2 4 4[2,] 2 2 4 4[3,] 4 4 8 8[4,] 4 4 8 8矩陣的轉(zhuǎn)置:
n1 # [,1] [,2][1,] 1 2[2,] 3 4提取或修正一個矩陣的對角元:
diag(n1); diag(n1) v # [,1] [,2] [,3][1,] 10 0 0[2,] 0 20 0[3,] 0 0 30矩陣求逆:
solve(n1)#> solve(n1) [,1] [,2][1,] 0.1063830 -0.03191489[2,] -0.0212766 0.106382984,數(shù)組(array)
語法格式:
array(data = NA, dim = length(data), dimnames = NULL)#data 向量,數(shù)組元素。dim 數(shù)組的維度,默認(rèn)是一維數(shù)組。dimnames 維度的名稱,必須是個列表,默認(rèn)情況下是不設(shè)置名稱的。實例:
# 創(chuàng)建兩個不同長度的向量vector1 vector2 # 創(chuàng)建數(shù)組result print(result)#運行結(jié)果:可以看到一維和二維的結(jié)果, , 1 [,1] [,2] [,3][1,] 5 10 13[2,] 9 11 14[3,] 3 12 15, , 2 [,1] [,2] [,3][1,] 5 10 13[2,] 9 11 14[3,]????3???12???155,因子(factor)
一個因子不僅包括分類變量本身還包括變量不同的可能水平。
因子用于存儲不同類別的數(shù)據(jù)類型,例如人的性別有男和女兩個類別,年齡來分可以有未成年人和成年人。R 語言創(chuàng)建因子使用 factor() 函數(shù),向量作為輸入?yún)?shù)。
語法:
factor(x,levels=sort(unique(x),na.last=TRUE),labels=levels,exclude=NA,ordered=is.ordered(x))#其中:levels 用來指定因子可能的水平(缺省值是向量x中互異的值);labels用來指定水平的名字;exclude表示從向量x中剔除的水平值;ordered是一個邏輯型選項用來指定因子的水平是否有次factor(1:3, levels=1:5)factor(1:3, labels=c("A", "B", "C"))#[1] A B CLevels: A B C6,數(shù)據(jù)框(data.frame)
數(shù)據(jù)框可以由函 數(shù)read.table 間接創(chuàng)建;也可以用函數(shù)data.frame創(chuàng)建。數(shù)據(jù)框中向量必須有相同的長度,若其中有一個比其它短,它將“循環(huán)”整數(shù)次
填充。
x?data.frame(x,?n);?data.frame(x,?M) x n1 1 102 2 103 3 104 4 10 x M1 1 102 2 353 3 104 4 35table = data.frame( 姓名 = c("張三", "李四"), 工號 = c("001","002"), 月薪 = c(1000, 2000)??? )print(table) # 查看 table 數(shù)據(jù)#執(zhí)行以上代碼輸出結(jié)果為:姓名 工號 月薪1 張三 001 10002 李四 002 2000#R語言的數(shù)據(jù)類型主要有四種比較常用:numeric(數(shù)值型)、character(字符型)、date(日期型)、logical(邏輯型)。?
進(jìn)行數(shù)據(jù)分析時會進(jìn)行相應(yīng)的轉(zhuǎn)換。
附R常用快捷鍵:
腳本編輯窗口:
新建腳本:Ctrl+Shift+N
代碼提示與補全:Tab
注釋或取消注釋:Ctrl+Shift+C
運行所選代碼:Ctrl+Enter
運行全部代碼:Ctrl+Shift+Enter
全選:Ctrl+A
選擇:Shift+箭頭
刪除行:Ctrl+D
撤銷:Ctrl+Z
重做:Ctrl+Shift+Z
賦值符:Alt+-
代碼折疊:Alt+L
代碼展開:Shift+Alt+L
保存本腳本:Ctrl+S
保存全部腳本:Ctrl+Alt+S
增加縮進(jìn):選中代碼后,Tab(可包括多行)
減小縮進(jìn):選中代碼后,Shift+Tab
智能縮進(jìn):選中代碼后,Ctrl+I
智能縮進(jìn)加智能空格:Ctrl+Shift+A(更高級的代碼格式規(guī)范化工具,可參考formatR包)
選擇與替換:Ctrl+F
提取函數(shù):Ctrl+Alt+X(RStudio 可以分析某一代碼段,并自動將其轉(zhuǎn)換成一個可重復(fù)使用的函數(shù)。任何在選擇的代碼內(nèi)的“自由的”變量,即那些被引用但沒有被創(chuàng)建的變量,將被轉(zhuǎn)化為函數(shù)的參數(shù))
命令窗口中:
歷史中的上一條命令:向上箭頭
歷史中的下一條命令:向下箭頭
中斷運行的代碼:Esc
清除命令窗口中的內(nèi)容:Ctrl+L
參考資料:https://www.runoob.com/r/r-data-types.html
#建了微信群,歡迎學(xué)習(xí)R語言的加入,在這里我們可以討論基本知識,繪圖,地理數(shù)據(jù)處理與分析等...如若失效,可添加微信加入:wang010479
總結(jié)
以上是生活随笔為你收集整理的r语言清除变量_R语言(1)初识与数据结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eos和以太坊有什么关系_比特币、以太坊
- 下一篇: 根据控件句柄读控件在内存的数据_WPF