交通數(shù)據(jù)分析基礎(chǔ) 實(shí)驗(yàn)指導(dǎo)1 R語言的安裝_第1頁
交通數(shù)據(jù)分析基礎(chǔ) 實(shí)驗(yàn)指導(dǎo)1 R語言的安裝_第2頁
交通數(shù)據(jù)分析基礎(chǔ) 實(shí)驗(yàn)指導(dǎo)1 R語言的安裝_第3頁
交通數(shù)據(jù)分析基礎(chǔ) 實(shí)驗(yàn)指導(dǎo)1 R語言的安裝_第4頁
交通數(shù)據(jù)分析基礎(chǔ) 實(shí)驗(yàn)指導(dǎo)1 R語言的安裝_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

R語言的安裝R是免費(fèi)開源軟件,主要用于各領(lǐng)域的定量分析、數(shù)據(jù)分析編程、數(shù)據(jù)可視化等方面。R語言的一個(gè)重要特點(diǎn)是其靈活性和可擴(kuò)展性,截至2020年初,R語言已經(jīng)有16000個(gè)包(package),各個(gè)包均有極為較為詳細(xì)的使用說明。同時(shí),R語言可以較為方便與其他語言,如python、C、C++等進(jìn)行整合。為比較方便使用R語言,需要安裝R和Rstudio兩個(gè)軟件。安裝R后再安裝Rstudio。R的安裝:/CRAN/。下載完成后默認(rèn)安裝即可。Rstudio的安裝:/products/rstudio/download/。下載完成后默認(rèn)安裝即可。R的打開:雙擊Rstudio安裝目錄中bin文件夾中的rstudio.exe,即可打開R語言的工作界面。注意:兩個(gè)軟件的安裝位置建議不要有中文路經(jīng)。下圖為Rstudio界面:打開Rstudio后,為了后續(xù)更快地安裝R包,需要對(duì)Rstudio進(jìn)行簡(jiǎn)單設(shè)置。依次從目錄中點(diǎn)擊以下路徑:Tools->Gloabaloptions->Packages,在PrimaryCRANrepository中選擇China(Beijing1)[https]-TUNATeam,TsinghuaUniversity使用幫助R語言擁有良好的幫助系統(tǒng),所有的包(包括系統(tǒng)默認(rèn)加載的包)均有標(biāo)準(zhǔn)化的文檔用于描述可用的函數(shù)。R語言幫助可通過多種途徑獲得:通過網(wǎng)站獲取訪問R語言網(wǎng)站/,即可在里面查找到各個(gè)包的完整說明書的pdf版。通過在R中輸入代碼獲取R中可以通過兩種途徑獲取幫助:假設(shè)已經(jīng)加載了包含函數(shù)geom_point的包ggplot2,可以通過在命令行中輸入?geom_point或者h(yuǎn)elp("geom_point")獲得相關(guān)信息。假設(shè)沒有加載了包含函數(shù)geom_point的包ggplot2,可以通過在命令行中輸入??geom_point或者h(yuǎn)elp.search("geom_point")獲得相關(guān)信息。包的安裝及使用汽車廠商制造汽車不會(huì)從輪子開始造起,而是通過購買零部件,將零部件組裝成汽車。同理,利用R語言進(jìn)行數(shù)據(jù)分析、編程,也沒必要所有代碼都自己寫,可以通過下載R語言包,調(diào)用已有的包進(jìn)行工作。R語言有大量的包,比較常用的包括ggplot2、mlogit等等。R語言包的安裝相當(dāng)簡(jiǎn)單,如安裝ggplot2,只需后輸入如下代碼即可:install.packages("ggplot2")如果需要使用ggplot2包,只需輸入以下語句即可:library(ggplot2)數(shù)據(jù)結(jié)構(gòu)及操作運(yùn)算R語言不需要定義變量,可直接進(jìn)行運(yùn)算1+3##[1]41+3是代碼,##[1]后面的是代碼運(yùn)算的結(jié)果2^3##[1]8#余數(shù)

7%%4##[1]3#整除

7%/%4##[1]1#對(duì)數(shù),默認(rèn)以自然常數(shù)e為底,

log(10)##[1]2.3#指定對(duì)數(shù)的底

log(10,base=10)##[1]1向量#利用<-給變量賦值

#與python等類似,不用顯式指定變量的類型

a<-1

a#這行代碼用于顯示a##[1]1以上代碼注意幾點(diǎn):R語言標(biāo)準(zhǔn)的賦值符號(hào)是<-,當(dāng)然也可使用=與c語言等不同,R語言的變量在使用前,不需要定義其類型#變量命名與C語言等類似,唯一不同的是R中變量可以包括.號(hào)

#以下命名規(guī)則都是可行的

avariable<-1

a_variable<-1

a.variable<-1#向量是用于存儲(chǔ)數(shù)值型、字符型或邏輯型數(shù)據(jù)的一維數(shù)組。向量一般由函數(shù)c()生成,也可由其他函數(shù)生成。

a<-c(1,2,-5,1,3,-10)

a##[1]12-513-10#取向量a的第1個(gè)元素

a[1]##[1]1#取向量a的第1、3個(gè)元素

a[c(1,3)]##[1]1-5#取向量a中除第1個(gè)元素外的其他元素

a[-1]##[1]2-513-10#取向量a中除第1、3個(gè)元素外的其他元素

a[c(-1,-3)]##[1]213-10#獲取向量長(zhǎng)度

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

length(a)##[1]4b<-c('Feb','July',"June",'Oct')#單引號(hào)與雙引號(hào)效果一樣

b##[1]"Feb""July""June""Oct"#TRUE與T等效,表示的是真;同理,F(xiàn)ALSE與F等效

c<-c(TRUE,FALSE,T,F)

c##[1]TRUEFALSETRUEFALSE#生成一列數(shù),數(shù)據(jù)的間隔為2

d<-seq(from=1,to=10,by=2)

d##[1]13579#生成一列數(shù),這列數(shù)的長(zhǎng)度為8

d<-seq(from=1,to=10,length.out=8)

d##[1]1.002.293.574.866.147.438.7110.00#對(duì)向量進(jìn)行復(fù)制以生成新的向量

rep(c(1,2,3),times=3)##[1]123123123#對(duì)向量進(jìn)行復(fù)制以生成新的向量

rep(c(1,2,3),each=3)##[1]111222333#向量運(yùn)算

c(1,2,3,4)+c(2,3,4,5)##[1]3579#兩個(gè)向量長(zhǎng)度不一樣,但第一個(gè)向量長(zhǎng)度為4,第二個(gè)長(zhǎng)度為2

#R對(duì)第二個(gè)向量進(jìn)行了廣播,使其稱為c(2,3,2,3),再與第一個(gè)向量相加

#因而實(shí)際上是c(1,2,3,4)+c(2,3,2,3)

c(1,2,3,4)+c(2,3)##[1]3557#廣播

c(1,2,3,4)*2##[1]2468#用NA表示缺失值

a<-c(1,2,3,4,NA)

a##[1]1234NA#判斷是否為缺失值

is.na(a)##[1]FALSEFALSEFALSEFALSETRUE矩陣矩陣是一個(gè)二維數(shù)組,只是每個(gè)元素都擁有相同的模式(數(shù)值型、字符型或邏輯型)??赏ㄟ^函數(shù)matrix創(chuàng)建矩陣。y1<-matrix(1:20,nrow=5,ncol=4)

y1##[,1][,2][,3][,4]

##[1,]161116

##[2,]271217

##[3,]381318

##[4,]491419

##[5,]5101520y2<-matrix(1:20,nrow=5,ncol=4,byrow=T)

y2##[,1][,2][,3][,4]

##[1,]1234

##[2,]5678

##[3,]9101112

##[4,]13141516

##[5,]17181920#取y2的第1行

y2[1,]##[1]1234#取y2的第1、3行

y2[c(1,3),]##[,1][,2][,3][,4]

##[1,]1234

##[2,]9101112#取y2的第1列

y2[,1]##[1]1591317#對(duì)行及列命名

rnames<-c("R1","R2","R3","R4","R5")

cnames<-c("C1","C2","C3","C4")

y3<-matrix(1:20,nrow=5,ncol=4,byrow=T,

dimnames=list(rnames,cnames))

y3##C1C2C3C4

##R11234

##R25678

##R39101112

##R413141516

##R517181920因子類別(名義型)變量和有序類別(有序型)變量在R中稱為因子(factor)。因子在R中非常重要,因?yàn)樗鼪Q定了數(shù)據(jù)的分析方式以及如何進(jìn)行視覺呈現(xiàn)。函數(shù)factor()以一個(gè)整數(shù)向量的形式存儲(chǔ)類別值,整數(shù)的取值范圍是[1…k](其中k是名義型變量中唯一值的個(gè)數(shù)),同時(shí)一個(gè)由字符串(原始值)組成的內(nèi)部向量將映射到這些整數(shù)上。因子分為無序因子和有序因子兩類:##無序因子

type<-c('a','b','a','c','b')#字符串向量

type_f<-factor(type)#將向量type轉(zhuǎn)換為無序因子

#type_f<-factor(type)將此向量存儲(chǔ)為(1,2,1,3,1)

#并在內(nèi)部將其關(guān)聯(lián)為1=a,2=b,3=c(具體賦值根據(jù)字母順序而定)

paste("type的類別是",class(type))##[1]"type的類別是character"paste("type_f的類別是",class(type_f))##[1]"type_f的類別是factor"##有序因子

sat<-c("dissatisfied","satisfied","neutral","satisfied","dissatisfied")

sat_f<-factor(sat,ordered=TRUE,

levels=c("dissatisfied","neutral","satisfied"))

str(sat_f)##Ord.factorw/3levels"dissatisfied"<..:13231列表列表(list)是一些對(duì)象的有序集合。列表允許你整合若干(可能無關(guān)的)對(duì)象到單個(gè)對(duì)象名下。例如,某個(gè)列表中可能是若干向量、矩陣、數(shù)據(jù)框,甚至其他列表的組合??梢允褂煤瘮?shù)list()創(chuàng)建列表。a<-"abcdefsds"

b<-1:10

c<-matrix(1:20,nrow=2)

a_list<-list(a_string=a,a_vector=b,a_matrix=c)

a_list##$a_string

##[1]"abcdefsds"

##

##$a_vector

##[1]12345678910

##

##$a_matrix

##[,1][,2][,3][,4][,5][,6][,7][,8][,9][,10]

##[1,]135791113151719

##[2,]2468101214161820str(a_list)##Listof3

##$a_string:chr"abcdefsds"

##$a_vector:int[1:10]12345678910

##$a_matrix:int[1:2,1:10]12345678910...數(shù)據(jù)框數(shù)據(jù)框是進(jìn)行數(shù)據(jù)分析時(shí)候,最常使用的一個(gè)數(shù)據(jù)格式。數(shù)據(jù)框的每一行表示一個(gè)樣本,每一列表示一個(gè)特征。如下是一個(gè)典型的數(shù)據(jù)框。data(mtcars)

head(mtcars)##mpgcyldisphpdratwtqsecvsamgearcarb

##MazdaRX421.061601103.902.6216.50144

##MazdaRX4Wag21.061601103.902.8817.00144

##Datsun71022.84108933.852.3218.61141

##Hornet4Drive21.462581103.083.2119.41031

##HornetSportabout18.783601753.153.4417.00032

##Valiant18.162251052.763.4620.21031數(shù)據(jù)框的創(chuàng)建很簡(jiǎn)單,如下是一種簡(jiǎn)單的數(shù)據(jù)框創(chuàng)建方式:id<-1:5

status<-c("poor","improved","excellent","poor",'improved')

gender<-c('female','male','female','male','male')

df<-data.frame(id,status,gender)

df##idstatusgender

##11poorfemale

##22improvedmale

##33excellentfemale

##44poormale

##55improvedmale選取數(shù)據(jù)框的某一類,可通過數(shù)據(jù)框名稱$特征值名稱的方式df$id##[1]12345#查看數(shù)據(jù)框的列名

names(df)##[1]"id""status""gender"對(duì)數(shù)據(jù)框進(jìn)行初步分析,可采用如下方式:summary(df)##idstatusgender

##Min.:1Length:5Length:5

##1stQu.:2Class:characterClass:character

##Median:3Mode:characterMode:character

##Mean:3

##3rdQu.:4

##Max.:5為數(shù)據(jù)框df增加新列,可采用如下操作:df$b<-c(3,4,1,2,3)

df$c<-df$b>3

head(df)##idstatusgenderbc

##11poorfemale3FALSE

##22improvedmale4TRUE

##33excellentfemale1FALSE

##44poormale2FALSE

##55improvedmale3FALSE根據(jù)某列數(shù)據(jù),對(duì)數(shù)據(jù)框進(jìn)行排序:#升序

newdf<-df[order(df$b),]

head(newdf)##idstatusgenderbc

##33excellentfemale1FALSE

##44poormale2FALSE

##11poorfemale3FALSE

##55improvedmale3FALSE

##22improvedmale4TRUE#降序

newdf<-df[order(-df$b),]

head(newdf)##idstatusgenderbc

##22improvedmale4TRUE

##11poorfemale3FALSE

##55improvedmale3FALSE

##44poormale2FALSE

##33excellentfemale1FALSE#根據(jù)多個(gè)特征進(jìn)行排序

#負(fù)號(hào)表示降序排列,多個(gè)變量用逗號(hào)分隔

newdf<-df[order(gender,-df$b),]

head(newdf)##idstatusgenderbc

##11poorfemale3FALSE

##33excellentfemale1FALSE

##22improvedmale4TRUE

##55improvedmale3FALSE

##44poormale2FALSE選擇某些特征:vars<-names(df)%in%c("id","gender")

newdf<-df[vars]

head(newdf)##idgender

##11female

##22male

##33female

##44male

##55male選擇某些行:#&表示且

#|表示或

newdf<-subset(df,gender=="female"&status=="poor")

newdf##idstatusgenderbc

##11poorfemale3FALSE數(shù)據(jù)的輸入輸出一般情況下,我們較少從鍵盤上輸入數(shù)據(jù),更多的是從硬盤的文件中導(dǎo)入數(shù)據(jù)。經(jīng)常使用的數(shù)據(jù)格式包括:csv,txt,xls,dta格式等。下圖所示的是常用的csv數(shù)據(jù)格式,數(shù)據(jù)與數(shù)據(jù)之間用,分隔,對(duì)于這種數(shù)據(jù)格式,可以用read.table函數(shù)導(dǎo)入為數(shù)據(jù)框。df1<-read.table("data1.csv",header=T,sep=",")

#header用于表征每列是否有名稱

#sep用于表征數(shù)據(jù)與數(shù)據(jù)之間的分隔符,csv格式的分隔符是","

#如果讀取文件的路徑不是R默認(rèn)的路徑,應(yīng)該寫入絕對(duì)路徑:

#df1<-read.table("D:/datafile/data1.csv",header=T,sep=",")

head(df1)##Xmpgcyldisphpdratwtqsecvsamgearcarb

##1MazdaRX421.061601103.902.6216.50144

##2MazdaRX4Wag21.061601103.902.8817.00144

##3Datsun71022.84108933.852.3218.61141

##4Hornet4Drive21.462581103.083.2119.41031

##5HornetSportabout18.783601753.153.4417.00032

##6Valiant18.162251052.763.4620.21031

#excel中可以保存為csv格式

#如果是csv格式,可以用更簡(jiǎn)單的函數(shù)導(dǎo)入數(shù)據(jù)

#read.csv中將分隔符設(shè)置為","

df2<-read.csv("data1.csv",header=T)

head(df2)##Xmpgcyldisphpdratwtqsecvsamgearcarb

##1MazdaRX421.061601103.902.6216.50144

##2MazdaRX4Wag21.061601103.902.8817.00144

##3Datsun71022.84108933.852.3218.61141

##4Hornet4Drive21.462581103.083.2119.41031

##5HornetSportabout18.783601753.153.4417.000

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論