R---數(shù)據(jù)以及數(shù)據(jù)的結(jié)構(gòu)

(1)常見的數(shù)據(jù)類型

在R中处窥,常見的數(shù)據(jù)類型一共有5種:
字符型character,
數(shù)值型numeric,
整形integer,
復(fù)數(shù)型complex,
邏輯型logical

常見數(shù)據(jù)類型.png

還需要注意的是铺呵,如果我們直接輸入1,2,3,4...得到的是numeric類型。如果想要輸入integer類型野揪,需要輸入1L,2L,3L,4L...

Inf表示無窮大昵观,-Inf表示無窮小绸罗。
同理1/0表示無窮大,-1/0表示無窮小
如果輸入0/0則會得到Nan這樣的顯示驶兜,Nan表示在計算的時候出現(xiàn)錯誤。
而如果出現(xiàn)Na則表示缺失值远寸。我們可以認(rèn)為Na包含了NaN抄淑。

NaN和Na.png

(2)數(shù)據(jù)的結(jié)構(gòu)

在R語言中,常見的數(shù)據(jù)的結(jié)構(gòu)有以下幾種:
向量驰后,列表肆资,矩陣,數(shù)組倡怎,數(shù)據(jù)框迅耘,因子

1、向量

特點:相同類型监署,序列
如何創(chuàng)建向量颤专?
1、創(chuàng)建初始向量:vector(‘?dāng)?shù)據(jù)類型’钠乏,數(shù)據(jù)個數(shù))栖秕,例如,我們輸入:x<-vector('numeric',10)晓避,可以得到如下結(jié)果簇捍,可以看到x的類型為數(shù)值型numeric只壳。

vector的用法.png

2、用vector其實等同于直接用數(shù)據(jù)類型后面跟數(shù)據(jù)個數(shù)暑塑,上面的例子其實就可以寫成numeric(10)吼句,運行之后可以得到相同的結(jié)果:

numeric.png

3、如果需要創(chuàng)建的向量是等差為1的等差數(shù)列事格,如1到20的數(shù)列惕艳,我們可以直接寫成:
1:20

1至20的等差數(shù)列.png

4、更多情況下驹愚,我們用c()函數(shù)用來創(chuàng)建向量远搪,把數(shù)據(jù)對象連結(jié)在一起(concatenate)
例如:
c(1,2)

c(1,2).png

如上圖可見,這里的數(shù)據(jù)類型class顯示的是“numeric”逢捺,說明c(1,2)生成的向量里面的數(shù)據(jù)類型是數(shù)值型谁鳍,而非整形integer。如果想要得到整形的向量劫瞳,我們需要輸入:
c(1L,2L)

c(1L,2L).png

如果輸入c(TRUE,FALSE,FALSE,TRUE)倘潜,得到邏輯型向量

c(TRUE,F(xiàn)ALSE).png

如果輸入c('初中','高中','大學(xué)')柠新,得到文本型向量


c(字符).png

注意
就像我們之前提到的窍荧,向量里面必須得是相同類型的數(shù)據(jù)。如果在創(chuàng)建向量的時候恨憎,輸入了不同類型的數(shù)據(jù)蕊退,R會強制將不同類型的數(shù)據(jù)轉(zhuǎn)換成相同的數(shù)據(jù)類型。
例如憔恳,輸入c(1.7,'a')瓤荔,最后生成的結(jié)果如圖,1.7被轉(zhuǎn)成了字符型钥组,我們也可以從class里面看到類型是字符型character输硝。

強制轉(zhuǎn)換1.png

輸入c(T,2),最后生成的結(jié)果如圖程梦,T由邏輯型轉(zhuǎn)成了數(shù)值型点把。

強制轉(zhuǎn)換2.png

輸入c("a",T),得到的結(jié)果如圖所示,T由邏輯型轉(zhuǎn)成了字符型屿附。

強制轉(zhuǎn)換3.png

上面提到的這幾種轉(zhuǎn)換郎逃,通常都是R強制地悄悄地執(zhí)行的。如果我們自己想要轉(zhuǎn)換數(shù)據(jù)類型挺份,則應(yīng)該應(yīng)用:
as.numeric/logical/character/complex(向量名)來進(jìn)行轉(zhuǎn)換褒翰。

2、列表

特點:列表和向量相同的地方在于,二者都是序列优训;不同的地方在于朵你,列表是由不同類型的對象組成的,而向量則由同樣類型的數(shù)據(jù)組成揣非。
寫作:list(name1=object1,name2=object2,…)
例如:輸入x<-list(1,'a',T,b=c(1+4i,2-3i))抡医,我們可以明顯看到list()里面的每個部分類型都不同(數(shù)值,字符妆兑,邏輯值魂拦,向量),輸出結(jié)果如圖:

list輸出結(jié)果.png
3搁嗓、矩陣

是一類特殊向量,維度屬性。
matrix(數(shù)據(jù), nrow = 幾行, ncol = 幾列, byrow = FALSE/T是否按行排列, dimnames = list(c(行名)箱靴,c(列名)))
斜體的部分表示可以不寫腺逛。
例如,我們想要輸入1-8衡怀,2行棍矛,4列,按照行排列抛杨,行名為張三够委、王五,列名為吃喝玩樂怖现∽旅保可以得到如下圖:
matrix(1:8,2,4,byrow=T,dimnames = list(c('張三','王五'),c('吃','喝','玩','樂')))

矩陣.png

矩陣還有另外一種方法可以創(chuàng)建,用cbind() rbind()創(chuàng)建
例如有x,y兩個向量屈嗤。cbind()是按照列來連接xy(x一列潘拨,y一列);rbind是按照行連接xy(x一行,y一行)
注意:如果用rbind()來合并矩陣或者向量或者表格饶号,必須要求二者列名一致

cbind&rbind.png

矩陣還有另外一種方法可以創(chuàng)建铁追,創(chuàng)建一個向量,而后添加維度

通過對向量添加維度來創(chuàng)建矩陣.png

t()表示矩陣的轉(zhuǎn)置

4茫船、數(shù)組

array琅束,和matrix最大的區(qū)別在于array的維度更多,有三個維度算谈。
我們可以理解為matrix有行涩禀、列兩個維度;但是array多了一個面板維度(分成幾塊)濒生。
array(數(shù)據(jù),dim=c(幾行,幾列,幾塊),dimnames = list(c(行名),c(列名),c(板塊名)))
例如:
array(1:12,dim=c(2,3,2),dimnames=list(c('從前','現(xiàn)在'),c('衣','食','行'),c('北京','上海')))
得到如下結(jié)果:

array.png
5埋泵、數(shù)據(jù)框

數(shù)據(jù)框是R的一個重要數(shù)據(jù)類型,用來存儲表格數(shù)據(jù)。可認(rèn)為是特殊類型的列表,列表中每個元素(每類)都有同樣的長度丽声。每一列可以是不同的類型(矩陣是相同的)礁蔗。可以通過調(diào)用data.matrix()將數(shù)據(jù)框轉(zhuǎn)化為矩陣雁社。
數(shù)據(jù)框很像我們在使用SQL的時候來定義表格之后浴井,給表格中的各列賦值的情況。
data.frame(列1=向量,列2=向量)
例如:data.frame(foo=1:4,bar=c(T,T,F,F))

數(shù)據(jù)框.png

nrow(x)----x有幾行
ncol(x)----x有幾列

6霉撵、因子(factor磺浙,gl)

特點:用于創(chuàng)建分類數(shù)據(jù),兩種類型:有序/無序。
可以寫成這樣的形式:
factor(c("第一類","第二類","第三類",...),levels=c("第一類","第二類","第三類"),ordered = T)
ordered默認(rèn)為F徒坡。
例如:factor(c("小學(xué)","初中","高中","小學(xué)"),levels=c("小學(xué)","初中","高中"),ordered = T)
得到如下結(jié)果:

因子.png

我們?nèi)绻粚evel進(jìn)行定義撕氧,出現(xiàn)如下結(jié)果:
此時雖然有比較,但是初中<高中<小學(xué)喇完,這樣的結(jié)果是根據(jù)字母發(fā)音排序的結(jié)果伦泥,或許并不是我們想要的,所以如果我們對排序有要求锦溪,還是要對levels進(jìn)行定義不脯。levels=c("第一類","第二類","第三類"),理解為
"第一類"<"第二類"<"第三類"

未對Levels定義.png

我們?nèi)绻粚rdered進(jìn)行定義刻诊,出現(xiàn)如下結(jié)果:
此時為無序數(shù)據(jù)防楷,無比較。


未定義Ordered.png

我們還有另外一種方法來定義因子:gl
gl(有幾類, 循環(huán)幾次, labels = c("第一類名稱", "第二類名稱"),ordered=T)

例如:gl(2,4)则涯,表示有兩個變量(2)复局,每一個循環(huán)4次

gl.png

例如:gl(2, 8, labels = c("女", "男"),ordered=T),表示有兩個變量是整,各循環(huán)8次肖揣,這兩個變量分別表示為“女”和“男”,排序浮入。
注意龙优,這里和上一個例子一樣,本來應(yīng)該是給出兩個變量用1和2表示事秀,labels相當(dāng)于給1和2加了“女”和“男”的標(biāo)簽彤断。所以排序之后顯示“女”<“男”,其背后真實的情況是1<2 易迹。

gl2.png

例如: gl(2, 8, labels = c("女", "男"),ordered=T,length=32)宰衙,在以上的基礎(chǔ)上,規(guī)定一共有32個對象

gl3.png

結(jié)語

通過我們以上的論述睹欲,我們知道了5種數(shù)據(jù)類型和幾種常見的對象形態(tài)供炼。
這些是R中非骋晃荩基礎(chǔ)但是十分重要的內(nèi)容,需要多看幾遍才能記得更清楚袋哼。

R對象總結(jié).png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冀墨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子涛贯,更是在濱河造成了極大的恐慌诽嘉,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弟翘,死亡現(xiàn)場離奇詭異虫腋,居然都是意外死亡,警方通過查閱死者的電腦和手機稀余,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門悦冀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人睛琳,你說我怎么就攤上這事雏门。” “怎么了掸掏?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長宙帝。 經(jīng)常有香客問我丧凤,道長,這世上最難降的妖魔是什么步脓? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任愿待,我火速辦了婚禮,結(jié)果婚禮上靴患,老公的妹妹穿的比我還像新娘仍侥。我一直安慰自己,他們只是感情好鸳君,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布农渊。 她就那樣靜靜地躺著,像睡著了一般或颊。 火紅的嫁衣襯著肌膚如雪砸紊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天囱挑,我揣著相機與錄音醉顽,去河邊找鬼。 笑死平挑,一個胖子當(dāng)著我的面吹牛游添,可吹牛的內(nèi)容都是我干的系草。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼唆涝,長吁一口氣:“原來是場噩夢啊……” “哼找都!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起石抡,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤檐嚣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后啰扛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嚎京,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年隐解,在試婚紗的時候發(fā)現(xiàn)自己被綠了鞍帝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡煞茫,死狀恐怖帕涌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情续徽,我是刑警寧澤蚓曼,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站钦扭,受9級特大地震影響纫版,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜客情,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一其弊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧膀斋,春花似錦梭伐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至惰匙,卻和暖如春技掏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背项鬼。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工哑梳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绘盟。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓鸠真,卻偏偏與公主長得像悯仙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吠卷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容