1. R語言入門基礎(chǔ)——基礎(chǔ)操作篇(二)

        共 516字,需瀏覽 2分鐘

         ·

        2020-04-28 23:22

        cc1712081bd7b949b20fd8d39c5a1adb.webp


        ? ???作者:天人


        ? ? ?來源:天人的自我修養(yǎng)


        上一篇講了R語言中關(guān)于賦值、數(shù)據(jù)類型、對象類型的相關(guān)知識,這篇來細(xì)說下對象類型的知識。說之前先來說下數(shù)據(jù)結(jié)構(gòu)的類型,數(shù)據(jù)結(jié)構(gòu)的類型包括:向量、矩陣、數(shù)組、數(shù)據(jù)框、列表,是不是發(fā)現(xiàn)?向量、矩陣、數(shù)組、數(shù)據(jù)框、列表在對象類型中出現(xiàn)過,其實(shí)這很簡單,可以理解為R中有向量、因子、數(shù)組、矩陣、數(shù)據(jù)框、時間序列、列表這幾種對象類型,經(jīng)過數(shù)據(jù)的結(jié)構(gòu)化后只剩下向量、矩陣、數(shù)組、數(shù)據(jù)框、列表這幾種結(jié)構(gòu)類型。所以接下來我會把對象類型和數(shù)據(jù)結(jié)構(gòu)類型結(jié)合起來說。
        1、向量(vector)
        向量是R語言中最基本的數(shù)據(jù)類,也是最常用的類型,配合執(zhí)行組合功能的c()可以用來創(chuàng)建向量。如下:

        0ab0dbbb36103f539cd55b9892e7f9c9.webp

        由圖可以看到a、b中存儲的為數(shù)值型數(shù)據(jù),c中存儲的為邏輯型,d中存儲的為字符型數(shù)據(jù),但是有一點(diǎn)要注意,就是單個向量中的數(shù)據(jù)必須為同一類型的數(shù)據(jù)(數(shù)值型(包含整數(shù)型)、字符型、邏輯型)。順便再提一點(diǎn),如果你要創(chuàng)建一個沒有數(shù)據(jù)的向量(簡稱空向量)可以使用vector()函數(shù),而且創(chuàng)建的空向量的長度、類型是可以指定的,使用方式如下:
        #創(chuàng)建空向量
        e(不一定要賦值給e,可以自己定義)<-vector('輸入要創(chuàng)建的數(shù)據(jù)類型',length=輸入要創(chuàng)建的長度)

        光看可能沒有什么感覺,所以下面創(chuàng)建幾個給大家看看。

        代碼如下:

        #創(chuàng)建一個長度為5的數(shù)值型空向量
        e<-vector('numeric',length=5)
        e
        #創(chuàng)建一個長度為6的邏輯型空向量
        f<-vector('logical',length=6)
        f
        #創(chuàng)建一個長度為10的字符型空向量
        g<-vector('character',length=10)
        g

        運(yùn)行結(jié)果如下:

        807349e162d588e9e1776f7bf3aaf127.webp

        2、矩陣(matrice)
        矩陣是具有維度屬性的向量,矩陣都是二維的,和向量類似矩陣中也僅能包含一種數(shù)據(jù)類型。有的人可能無法理解什么是二維,為了讓大家能理解我還是畫個圖來解釋下,這是一維的圖形。

        5da979b92abc0aa98558b0a244b62e93.webp

        這是二維的圖形

        c98da4945fb8a1f9f1a9a1bb51a46226.webp

        這三維的圖形

        704c963f5af7f6e867fbe8a7e5ba232e.webp

        因?yàn)槲也皇敲佬g(shù)專業(yè)的所以最多只能畫成這樣請大家見諒,由圖可以看到一維的圖形如果要延伸只能朝一個方向延伸,二維的圖形可以朝兩個方向,三維的方向可以朝三個方向延伸,這樣說會不會更容易理解。關(guān)于維度的問題就說到這里,回到主題繼續(xù)說說矩陣,矩陣是一個矩形陣表,包含行和列。矩陣還可以進(jìn)行四則運(yùn)算,還有求特征值、特征向量等運(yùn)算。我們可以使用matrix函數(shù)來創(chuàng)建矩陣,基本格式如下:
        matrix(data,nrow,ncow,byrow,dimnames)

        關(guān)于matrix常用的參數(shù)表如下

        參數(shù)

        描述

        data

        矩陣所包含的元素

        nrow

        行的維數(shù)

        ncol

        列的維數(shù)

        byrow

        矩陣的元素是否按行填充,默認(rèn)值為FALSE,即默認(rèn)按列填充

        dimnames

        以字符型向量表示的行名和列名

        這樣說明有的人可能不理解,所以我換種簡單粗暴的方式來說,
        matrix(data=要用來創(chuàng)建矩陣的向量名或向量具體內(nèi)容,nrow=輸入要設(shè)置的行數(shù),ncol=輸入要設(shè)置的列數(shù),byrow=選擇T為按行填充選擇F為按列填充,dimnames=list(c('輸入要設(shè)定的行名'),c('輸入要設(shè)定的列名')))

        矩陣的行數(shù)和列數(shù)要根據(jù)要來填充矩陣的向量數(shù)目來決定。matrix中最后一個參數(shù)是屬于可寫可不寫,如果需要設(shè)定行名和列名時才需要。說了這么多還是來點(diǎn)實(shí)踐比較好,實(shí)踐代碼如下

        #創(chuàng)建矩陣
        h<-c(1:9)??#1:9表示19內(nèi)的所有整數(shù)
        matrix(data=h,nrow=3,ncol=3,byrow=T)

        運(yùn)行結(jié)果如下

        07407b09d4d9f3070dbf823b99709adb.webp

        如果需要將矩陣保存下來就需要賦值了,這個步驟說了好幾次就不說了。
        3、數(shù)組(array)
        數(shù)組與矩陣類似,唯一的區(qū)別在于矩陣是二維的,而數(shù)組可以突破二維,換句話說數(shù)組的維度可以大于2,但是矩陣的維度只能等于2。數(shù)組是多維同一類型的集合(字符型、數(shù)值型、邏輯型、復(fù)數(shù)型)。創(chuàng)建數(shù)組可以用array函數(shù)來創(chuàng)建,基本格式如下
        array(data,dim,dimnames)

        array函數(shù)的參數(shù)描述如下表

        參數(shù)

        描述

        data

        數(shù)組的元素

        dim

        數(shù)組的維數(shù)

        dimnames

        各維度的名稱

        還是繼續(xù)要簡單粗暴的方式來表示它
        array(data=用于做數(shù)組的向量或向量內(nèi)容,dim=維度數(shù)(舉個例子如果想要創(chuàng)建一個三位的數(shù)組就寫成這樣c(長,寬,高)),dimnames=依舊是維度的名字)

        實(shí)踐代碼如下

        #創(chuàng)建一個長寬高均為三的數(shù)組
        i<-c(1:27)
        array(data=i,dim=c(3,3,3))

        運(yùn)行結(jié)果

        23063ee6f8bbd6f7cd48f1af62cde0f3.webp

        雖然創(chuàng)建的數(shù)組是三維但是程序框輸出的結(jié)果最多只能到達(dá)二維,所以輸出的結(jié)果也從三維轉(zhuǎn)換成二維的。4、數(shù)據(jù)框(Data Frames)
        數(shù)據(jù)框是僅次于向量的最重要的數(shù)據(jù)對象類型,它是R語言中最常處理的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)框中的一列代表某一變量屬性的所有取值,一行代表某一樣本數(shù)據(jù)。這么所可能還是不具體,還是先上基本格式再放實(shí)踐好了。
        基本格式
        data.frame(col1,col2,col3)?#數(shù)據(jù)框中不止可以放三列,可以放很多列只是就寫了三列做例子

        實(shí)踐代碼:

        j<-c(1:6)
        k<-c('張三','李四','王五','趙六','趙四','王一')
        l<-c(TRUE,FALSE,TRUE,FALSE,TRUE,TRUE)
        m<-c(1.2,3.5,4.3,2.4,5.6,8.7)
        data.frame(j,k,l,m)

        運(yùn)行結(jié)果

        c64831395f4b978732c043dbd6f3b88f.webp

        運(yùn)行完你會發(fā)現(xiàn)數(shù)據(jù)每行的列名有點(diǎn)不好看,對于列名的改法有很多,我們先說在創(chuàng)建的時候就改好的方法。

        代碼

        j<-c(1:6)
        k<-c('張三','李四','王五','趙六','趙四','王一')
        l<-c(TRUE,FALSE,TRUE,FALSE,TRUE,TRUE)
        m<-c(1.2,3.5,4.3,2.4,5.6,8.7)
        data.frame(序號=j,名字=k,是否正確=l,積分點(diǎn)=m)

        結(jié)果

        ac4224f989c0b3e7696e973def7e4728.webp

        對比兩份創(chuàng)建數(shù)據(jù)框的代碼可以看出,其實(shí)對于列名的設(shè)置就差了個列名的定義,就是“列名=向量”。5、列表(list)
        向量、矩陣和數(shù)組只能存儲同一類型的數(shù)據(jù),數(shù)據(jù)框可以存放不同類型的向量數(shù)據(jù),但要求每一列中的數(shù)據(jù)類型和長度必須相同。而列表卻可以將不同類型、不同長度(或大小)的數(shù)據(jù)結(jié)合在一起。創(chuàng)建列表可以使用list函數(shù),基礎(chǔ)格式。
        list(object1,object2,object3) #和數(shù)據(jù)框一樣可以多列
        list函數(shù)也和數(shù)據(jù)框一樣可以命名,方法和數(shù)據(jù)框一樣(對象名字=object)實(shí)踐代碼
        j<-c(1:6)
        k<-c('張三','李四','王五','趙六','趙四','王一')
        l<-c(TRUE,FALSE,TRUE,FALSE,TRUE,TRUE)
        m<-c(1.2,3.5,4.3,2.4,5.6,8.7)
        n<-c(2,34,55,6,7,6,6686,76,54,4,543,32,3)
        list(序號=j,名字=k,是否正確=l,積分點(diǎn)=m,積分=n)
        因?yàn)楸容^懶就沒有再去編數(shù)據(jù)了,就在之前的基礎(chǔ)上加了一個。運(yùn)行結(jié)果

        2bfed97d501a8e0b23f3984370ab345f.webp

        對了,忘記說了數(shù)據(jù)框和列表都是二維。
        6、因子(factor)

        因子是R語言中比較特殊的一個數(shù)據(jù)類型, 它是一個用于存儲類別的類型,就像你回答一個問題是或者否,又或者在買奶茶時要求糖的甜度那樣,表示分類的數(shù)據(jù)稱為因子,所有因子可以是字符型數(shù)據(jù)也可以是數(shù)值型數(shù)據(jù)(含整數(shù)型),并且因子具有水平(levels)用于限制因子的范圍。

        7、時間序列

        時間序列是指將同一統(tǒng)計(jì)指標(biāo)的數(shù)值按其發(fā)生的時間先后順序排列而成的數(shù)列。

        ◆?◆?◆ ?◆?



        長按二維碼關(guān)注我們



        數(shù)據(jù)森麟公眾號的交流群已經(jīng)建立,許多小伙伴已經(jīng)加入其中,感謝大家的支持。大家可以在群里交流關(guān)于數(shù)據(jù)分析&數(shù)據(jù)挖掘的相關(guān)內(nèi)容,還沒有加入的小伙伴可以掃描下方管理員二維碼,進(jìn)群前一定要關(guān)注公眾號奧,關(guān)注后讓管理員幫忙拉進(jìn)群,期待大家的加入。


        管理員二維碼:


        猜你喜歡

        ?笑死人不償命的知乎沙雕問題排行榜

        ?用Python扒出B站那些“驚為天人”的阿婆主!

        ?全球股市跳水大戰(zhàn),誰最坑爹!

        ?上萬條數(shù)據(jù)撕開微博熱搜的真相!

        ?你相信逛B站也能學(xué)編程


        瀏覽 45
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 日韩精品免费一区二区三区竹菊 | 久久久久麻豆V国产精华液好用吗 | 日本少妇videos高潮 | 91精品少妇一区二区三区蜜桃臀 | 日韩网站在线观看 |