R語言-數據結構入門-2

R語言的學習

開始


??? 開始R語言的學習已經有一段時間了,正在按計劃開始學習,雖然年底有點忙還是堅持按計劃進行學習,這是學習的第一個節點時間,也該總結一下學習的成果,同時也勉勵一下自己堅持,就像笑來老師說“短期期望不要太高,長期期望不要太低”。




第一章 R語言介紹


1.1為何要使用R

優勢:

免費,開源的社群模式,支持各種圖標創作,是一個可進行交互式數據分析和探索的強大平臺,從多個數據獲取數據轉化為可用,各種圖形界面支持GUI,支持各種系統

難點:

由于許多功能都是由獨立貢獻者編寫的可選模塊提供的,這些文檔可能比較零散而且很難找到。事實上,要掌握R的所有功能,可以說是一項挑戰。

1.2 R的獲取和安裝

R可以在CRAN(Comprehensive R Archive Network)http://cran.r-project.org上免費下載

疑問:CRAN下載和安裝???已經見解決(見R語言分享第一篇文章)

1.3 R的使用

注意:rnorm(5)-> x與x<-rnorm(5)的語句等價,注釋由符號#開頭。在#之后出現的任何文本都會被R解釋器忽略

1.3.2獲取幫助



實例:



1.4包

R提供了大量開箱即用的功能,但它最激動人心的一部分功能通過可選模塊的下載和安裝來實現的。

使用命令 install.packages()安裝包? update.packages()更新安裝包? installed.packages()例出安裝包。

1.5批處理

outfile是接收輸出文件的文件名,options部分則列出了控制執行細節的選項。依照慣例,infile的擴展名是.R,outfile的擴展名為.Rout。

圖來源于R語言實戰

第二章 創建數據集

2.1數據集的概念

R可以處理的數據類型(模式)包括數值型、字符型、邏輯型(TRUE / FALSE)、復數型(虛

數)和原生型(字節)。在R中,PatientID、AdmDate和Age為數值型變量,而Diabetes和Status則為字符型變量。另外,你需要分別告訴R:PatientID是實例標識符,AdmDate含有日期數據,Diabetes和Status分別是名義型和有序型變量。R將實例標識符稱為rownames(行名),將類

別型(包括名義型和有序型)變量稱為因子(factors)。


圖來源于R語言實戰

2.2數據結構

注意:

1,單個向量中的數據必須,擁有相同的類型或模式(數值型、字符型或邏輯型)。同一向量中無法混雜不同模式的數據。

2,標量是只含一個元素的向量,例如f <- 3、g <- "US"和h <- TRUE,它們用于保存常量。

3,通過在方括號中給定元素所處位置的數值。

4,最后一個語句中使用的冒號用于生成一個數值序列

實例向量:


2.2.2矩陣

矩陣是一個二維數組,只是每個元素都擁有相同的模式(數值型、字符型或邏輯型)。可通

過函數matrix()創建矩陣。

實例

#矩陣

y<-matrix(1:20,nrow = 4,ncol = 5) #創建矩陣行4例5

cells <-c(1,2,3,4)

rnames <-c("r1","r2")

cnames <-c("c1","c2")

newmatrix <-matrix(cells,nrow = 2,ncol = 2,byrow = T,dimnames =list(rnames,cnames))#按行填充

newmatrix

twomatrix <-matrix(cells,nrow = 2,ncol = 2,byrow = F,

dimnames =list(rnames,cnames))#按例填充

Twomatrix

注意:

其中vector包含了矩陣的元素,nrow和ncol用以指定行和列的維數,dimnames包含了可選

的、以字符型向量表示的行名和列名。選項byrow則表明矩陣應當按行填充(byrow=TRUE)

還是按列填充(byrow=FALSE)

實例:

YY <- matrix(1:10,nrow = 2)

> YY

[,1] [,2] [,3] [,4] [,5]

[1,]13579

[2,]246810

> YY[2,]#取行

[1]2468 10

> YY[,2]#取例

[1] 3 4

> YY[2,4]#取只定行列

[1] 8

>

YY[2,c(3,5)]#確制定行的多例

[1]6 10

>

2.2.3數組

數組(array)與矩陣類似,但是維度可以大于2。數組可通過array函數創建,形式如下:

myarray <-array(vector, dimensions, dimnames)

其中vector包含了數組中的數據,dimensions是一個數值型向量,給出了各個維度下標的最大值,而dimnames是可選的、各維度名稱標簽的列表。

注意創建順序為:行例表順創建

示例

> sheet1 <- c("A1","A2")# 創建向量

> sheet2 <- c("B1","B2","B3") #創建向量

> sheet3 <-c("c1","c2","c3","c4")# 創建向量

>

> E <- array(1:24,c(2,3,4),dimnames = list(sheet1,sheet2,sheet3))#創建2x3x4 行例表順創建

> E

, , c1

B1 B2 B3

A1135

A2246

, , c2

B1 B2 B3

A179 11

A28 10 12

, , c3

B1 B2 B3

A1 13 15 17

A2 14 16 18

, , c4

B1 B2 B3

A1 19 21 23

A2 20 22 24

> E [1,1,1]# 行列表

[1] 1

2.2.4數據框

由于不同的列可以包含不同模式(數值型、字符型等)的數據,數據框可通過函數data.frame()創建:mydata <- data.frame(col1, col2,col3,...)

實例

#創建數據框

> #創建數據框

> MYID <- c(1,2,3,4)

> age <- c(21,23,23,25)

> diabetes <-c("T1","T2","T1","T2")

> sad <- c("poor","improved","excellent","poor")

> patientdata <- data.frame(MYID,age,diabetes,sad)

> patientdata

MYID age diabetessad

1121T1poor

2223T2improved

3323T1 excellent

4425T2poor

注意:每一列數據的模式必須唯一,不過你卻可以將多個模式的不同列放到一起組成數據框。Attach注意當名稱相同的對象不止一個時,這種方法的局限性就很明顯了

> summary(mtcars$mpg)

Min. 1st Qu.MedianMean 3rd Qu.Max.

10.4015.4219.2020.0922.8033.90

> attach(mtcars)

> summary(mpg)

Min. 1st Qu.MedianMean 3rd Qu.Max.

10.4015.4219.2020.0922.8033.90

> plot(mpg,disp)

> plot(mpg,wt)

> detach(mtcars)

> mpg <-c(25,36,47)

> attach(mtcars)

with用法示例

with(mtcars,{print(summary(mpg))#輸出到屏幕 統計概要

+plot(mpg,disp)#對其繪tu

+plot(mpg,wt)})#對其繪tu

Min. 1st Qu.MedianMean 3rd Qu.Max.

10.4015.4219.2020.0922.8033.90

注意:

Attach語句的注意:在數據框mtcars被綁定(attach)之前,你們的環境中已經有了一個名為mpg的對象。在這種情況下,原始對象將取得優先權,這與你們想要的結果有所出入。由于mpg中有3個元素而disp中有32個元素,故plot語句出錯。函數attach()和detach()最好在你分析一個單獨的據框,并且不太可能有多個同名對象時使用。任何情況下,都要當心那些告知某個對象已被屏蔽(masked)的警告。

wish

函數with()的局限性在于,賦值僅在此函數的括號內生效,你需要創建在with()結構以外存在的對象,使用特殊賦值符<<-替代標準賦值符(<-)即可,它可將對象保存到with()之外的全局環境中

> with(mtcars,{N<- summary(mpg)

+ keepstats <<- summary(mpg)})#賦值僅在此函數的括號內生效

> N

Error: object'N' not found

>keepstats

Min. 1st Qu.MedianMean 3rd Qu.Max.

10.4015.4219.2020.0922.8033.90

注意:將patientID指定為R中標記各類打印輸出和圖形中實例名稱所用的變量。

2.2.5因子

類別(名義型)變量和有序類別(有序型)變量在R中稱為因子(factor)。

示例

> #因子

> D <- factor(diabetes)#類別變量

> D

[1] T1 T2 T1 T2

Levels: T1 T2

>

> status <-c("poor","improved","excellent","poor")#順序變量

>

> status <- factor(status,ordered = T,levels =c("poor","improved","excellent"))

>

> status

[1] poorimprovedexcellent poor

Levels: poor < improved < excellent

數值型變量可以用levels和labels參數來編碼成因子。如果男性被編碼成1,女性被編碼成2,則以下語句:

示例

> sex <- c(1,2)

> sex

[1] 1 2

> sex <- factor(sex, levels=c(1, 2),labels=c("Male", "Female"))#數值型變量

> sex

[1] MaleFemale

Levels: Male Female

2.2.6列表

列表(list)是R的數據類型中最為復雜的一種。一般來說,列表就是一些對象(或成分,component)的有序集合。


對R語言的學習總結分享,發現在自己自學方面的問題和經驗

1,學習筆記缺乏一定邏輯性,日后回看的時候沒發看出清晰邏輯思路,筆記應該本節重要內容,實例、需要注意地方,有疑問地方這方向進行記錄,第一章和第二章自學筆記太混亂。

2,R語言學習確實枯燥,所以一定抓住高效注意力的時候進行學習,比如早上注意力明顯高于晚上,這種需要大量注意力的學習應該反正在自己注意力高效時段。

3,學以致用,要結合實際工作需求加以練習才是掌握語法高效手段。

4,學習進度還低于自己預期,過于關注點上的東西,不懂的可以先放一放,選過記錄之后往后看,后面可能會豁然開朗。

5,身心疲憊時候可以聽聽別人講座,這種有意想不到的收益。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容