第二天

R對(duì)象的類(lèi)型

1峰锁、原子向量

? ? ? ? ? ? ? ? ? ? ? ? ?x1<-c(1:5)

? ? ? ? ? ? ? ? ? ? ? ? ?x1為原子型向量

? ? ? ? ? ? ? ? ? ? ? ? ?x1<-5

? ? ? ? ? ? ? ? ? ? ? ? ?length x1

? ? ? ? ? ? ? ? ? ? ? ? ? #1

? ? ? ? ? ? ? ? ? ? ? ? ? x1為長(zhǎng)度為1的原子向量

原子向量只能是一種類(lèi)型的數(shù)據(jù)诫惭,其值儲(chǔ)存在一維向量中毛雇。原子向量可以?xún)?chǔ)存的數(shù)據(jù)類(lèi)型有:整型(integer)、雙整型(double)阿蝶、字符型(character)冰木、邏輯型(logical)饼丘、復(fù)數(shù)類(lèi)型(complex)、原始類(lèi)型(raw)仑最。

每種原子向量都有特定的書(shū)寫(xiě)規(guī)范扔役,這樣R才能夠準(zhǔn)確識(shí)別,進(jìn)行過(guò)運(yùn)算警医。

下面介紹R的六種原子向量

1亿胸、雙整型坯钦,又稱(chēng)數(shù)值型

特點(diǎn):存儲(chǔ)普通的數(shù)值型數(shù)據(jù);可大可小侈玄,可正可負(fù)婉刀,小數(shù)點(diǎn)可有可無(wú)。在R中鍵入的數(shù)據(jù)都默認(rèn)以雙整型(數(shù)值型)儲(chǔ)存序仙。

2突颊、整型

可通過(guò)typeof函數(shù)查看R對(duì)象的數(shù)據(jù)類(lèi)型

特點(diǎn):不需要小數(shù)點(diǎn)。明確設(shè)定整型的方法是數(shù)值之后加L潘悼。

整型和雙整型的特點(diǎn)比較:a律秃、數(shù)據(jù)處理更常用雙整型數(shù)據(jù) b、1和1L的儲(chǔ)存方式不同治唤,整型的定義方式要比雙整型更加精確 c棒动、采用整型進(jìn)行運(yùn)算,有時(shí)會(huì)產(chǎn)生浮點(diǎn)誤差宾添。

3迁客、字符型

特點(diǎn):儲(chǔ)存文本。書(shū)寫(xiě)要加雙引號(hào)辞槐。字符型向量中的單個(gè)元素成為字符串(string)掷漱,可以包含字母、數(shù)字或者符號(hào)榄檬。

4卜范、邏輯型

特點(diǎn):儲(chǔ)存TRUE和FALSE,是R中布爾數(shù)據(jù)的表現(xiàn)形式鹿榜。鍵入方式 ? ? ?TRUE或FALSE ? ? 海雪,R默認(rèn)將 ?T ?和 ?F ?當(dāng)做TRUE和FALSE的縮寫(xiě)。

5舱殿、復(fù)數(shù)類(lèi)型和原始類(lèi)型

特點(diǎn):這兩種數(shù)據(jù)類(lèi)型使用較少奥裸。書(shū)寫(xiě)規(guī)范:復(fù)數(shù)類(lèi)型為 ?數(shù)字+數(shù)字i ?;原始類(lèi)型為 ? raw(數(shù)字)沪袭。

屬性(attribute)

定義:屬性是加給R對(duì)象的額外信息湾宙,不影響R的取值,在一些函數(shù)運(yùn)算中會(huì)根據(jù)對(duì)象的屬性決定是否進(jìn)行特定操作冈绊∠丽可以將屬性理解為元數(shù)據(jù)(metadata),作用就是將與該R對(duì)象的相關(guān)信息便捷的方式儲(chǔ)存起來(lái)并附加給該對(duì)象死宣。

可以用attributes函數(shù)查看對(duì)象有哪些屬性伟恶,NULL表示空值,即沒(méi)有任何意義毅该。

原子向量最常見(jiàn)的三種屬性為:名稱(chēng)(name)博秫、維度(dim)和類(lèi)(class)

每個(gè)屬性都有相應(yīng)的輔助函數(shù)潦牛,上述三種屬性的輔助函數(shù)為:names(),dim()和class()挡育。

1罢绽、names函數(shù):可以將一串字符向量賦給對(duì)象。字符向量的長(zhǎng)度應(yīng)該等于對(duì)象的長(zhǎng)度静盅。每個(gè)字符元素對(duì)應(yīng)于對(duì)象中相應(yīng)位置的元素良价。要想一次性刪除names,可以將NULL賦給names函數(shù)蒿叠。

如上圖明垢,也可以在鍵入元素時(shí)直接添加名字

2、dim函數(shù):dim可將維度屬性賦給原子向量(原子向量是一維向量)使其成為n維數(shù)組(array)市咽。

函數(shù)dim(x痊银,y),x表示行施绎,y表示列溯革。填充數(shù)組的過(guò)程,先填充列谷醉,再填充行致稀。除了dim函數(shù)也可以選擇matrix函數(shù)和array函數(shù),這兩種函數(shù)有更多的參數(shù)俱尼,可以調(diào)節(jié)運(yùn)算過(guò)程抖单。

矩陣

矩陣將數(shù)值存儲(chǔ)在二維數(shù)組中。對(duì)應(yīng)的函數(shù)為matrix遇八。

matrix可以設(shè)定的參數(shù):行數(shù)(nrow)矛绘、列數(shù)(ncol),先填滿列(byrow=FALSE)

數(shù)組

array函數(shù)可以生成n維數(shù)組刃永。

array(原子向量货矮,dim=c(維度信息))

類(lèi)(class)

類(lèi)屬于屬性的一種。更改原子向量的維度不會(huì)更改數(shù)據(jù)類(lèi)型斯够,但是會(huì)更改class屬性(類(lèi))囚玫。個(gè)人對(duì)類(lèi)的理解就是將一種類(lèi)型的數(shù)據(jù)以不同種類(lèi)的形式表現(xiàn),就是說(shuō)將數(shù)據(jù)換個(gè)表現(xiàn)形式雳刺,比如說(shuō)將一維的數(shù)據(jù)用二維的方式排列劫灶,將秒數(shù)換算成天數(shù)。


上圖所示:die原本是一維的數(shù)值向量掖桦,變成二維后依然是數(shù)值向量,數(shù)據(jù)類(lèi)型沒(méi)有改變供汛,但是class變了


attributes函數(shù)可以查看對(duì)象的屬性枪汪,但不一定顯示class涌穆,如果想查看class需要使用class函數(shù)搜索
如圖顯示:ashape1的class屬性為matrix


如果一個(gè)函數(shù)沒(méi)有class屬性,class函數(shù)會(huì)返回該函數(shù)的數(shù)據(jù)類(lèi)型

R及R包中有很多類(lèi)雀久,每個(gè)類(lèi)都有自己的幫助頁(yè)面宿稀,在這些類(lèi)中,有一種類(lèi)特別重要赖捌,那就是因子(factor)祝沸。

因子在R中用來(lái)存儲(chǔ)分類(lèi)信息。生成因子的函數(shù)factor可以將向量中的值轉(zhuǎn)化為整數(shù)越庇,存儲(chǔ)在整數(shù)型向量中罩锐,并將兩個(gè)屬性添加到該整型向量,一個(gè)level屬性和一個(gè)類(lèi)屬性卤唉,level儲(chǔ)存顯示因子值的一組標(biāo)簽涩惑,類(lèi)屬性即為factor。

使用unclass函數(shù)查看R如何儲(chǔ)存因子:factor將字符串轉(zhuǎn)化為整數(shù)型儲(chǔ)存桑驱,每個(gè)不同的整數(shù)對(duì)應(yīng)相應(yīng)的標(biāo)簽(levels)


可以使用as.character函數(shù)將一個(gè)因子轉(zhuǎn)換成字符串

強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類(lèi)型

R的強(qiáng)制轉(zhuǎn)換是指:將不同的數(shù)據(jù)類(lèi)型放入一個(gè)向量竭恬,R會(huì)自動(dòng)講這些數(shù)據(jù)轉(zhuǎn)換為同一種數(shù)據(jù)。

強(qiáng)制轉(zhuǎn)換的規(guī)則:向量中含有字符串熬的,R會(huì)將所有元素轉(zhuǎn)換為字符型痊硕;向量中只含有邏輯型和數(shù)值型元素,R將所有元素轉(zhuǎn)換為數(shù)值型押框。在邏輯型元素轉(zhuǎn)換為數(shù)值型元素時(shí)寿桨,TRUE被轉(zhuǎn)換為1;FALSE被轉(zhuǎn)換為0强戴。對(duì)邏輯型向量進(jìn)行運(yùn)算亭螟,R也會(huì)進(jìn)行強(qiáng)制轉(zhuǎn)換字符型為數(shù)值型。

如果想將一種類(lèi)型的數(shù)據(jù)轉(zhuǎn)換為另一種特定類(lèi)型可以用as系列函數(shù)

列表

列表是R的一種基本對(duì)象類(lèi)型骑歹。列表是將數(shù)據(jù)組織在一維集合中预烙,類(lèi)似于原子型向量,但是列表組織的是R對(duì)象道媚,不是具體的單個(gè)元素扁掸,列表中可以有不同的數(shù)據(jù)類(lèi)型。創(chuàng)建向量需要用list函數(shù)最域。

[[1]]表示列表中的第幾個(gè)元素谴分,[1]表示列表中第幾個(gè)元素的子元素。列表中的元素也可以有獨(dú)立的索引系統(tǒng)镀脂,比如列表的元素中含有列表牺蹄。

數(shù)據(jù)框(data frame)

數(shù)據(jù)框是列表的二維版本,每一列是一個(gè)向量薄翅,列與列之間的數(shù)據(jù)類(lèi)型可以不同沙兰,同一列內(nèi)的數(shù)據(jù)類(lèi)型必須相同氓奈。

注意兩點(diǎn):1、可以給數(shù)據(jù)框中的每個(gè)向量起名字鼎天,如上圖的gene舀奶、expressionlevel、foldchange斋射。2育勺、每列向量必須等長(zhǎng),或者在R的循環(huán)規(guī)則下可以變成等長(zhǎng)向量罗岖。


數(shù)據(jù)框的的數(shù)據(jù)類(lèi)型屬于列表(list)涧至,str函數(shù)可以查看有哪些對(duì)象組織在了該列表或者數(shù)據(jù)框中,如上圖R自動(dòng)將gene列表中的字符串轉(zhuǎn)換成了因子呀闻。如果不想讓R將字符串自動(dòng)轉(zhuǎn)換為因子化借,可以在data.frame函數(shù)中添加參數(shù):stringasfactors=FALSE

加載數(shù)據(jù)

.csv文件是逗號(hào)分隔值文件(comma seperated values),是目前最常用的儲(chǔ)存數(shù)據(jù)的純文本文件捡多。

加載外部的數(shù)據(jù)集(dataset):在Rstudio的右上方蓖康,點(diǎn)擊import dataset按鈕,選擇要添加的數(shù)據(jù)類(lèi)型垒手,這里要注意蒜焊,添加數(shù)據(jù)之前,應(yīng)將數(shù)據(jù)文件放置到Rstudio的工作目錄科贬。在導(dǎo)入文件時(shí)泳梆,可以根據(jù)導(dǎo)向設(shè)定一下所要讀取文件的分隔符、是否把第一行當(dāng)做變量名稱(chēng)榜掌、是否默認(rèn)把字符串轉(zhuǎn)換成因子(一般情況下都不要這么干)优妙。可以在控制面板中通過(guò)head函數(shù)或者tail函數(shù)查看前幾行或者后幾行數(shù)據(jù)憎账。

保存數(shù)據(jù)

將數(shù)據(jù)框保存為文本文件如.csv:用writ.csv函數(shù)套硼,函數(shù)的局用法可以通過(guò)?writ.csv查詢(xún)胞皱,在使用該函數(shù)時(shí)有三個(gè)參數(shù)很重要如圖:

第一個(gè)參數(shù)是對(duì)象名邪意;第二個(gè)參數(shù)是保存生成的文件名,注意要標(biāo)明格式反砌;第三個(gè)就是row.names雾鬼,這個(gè)參數(shù)一般都把它設(shè)置為FALSE,不然每次打開(kāi)可能會(huì)都要重新生成行號(hào)宴树。

保存的文件一般都會(huì)保存到目前的工作目錄下策菜。如果要更改路徑可以選擇Rstudio中Session-set working directory中設(shè)置。在Tools-Global options中也可以設(shè)置default working directory(when not in a project)。我在tools選項(xiàng)中設(shè)置了默認(rèn)工作路徑為D盤(pán)做入,我打開(kāi)放在桌面的 ? ?.R ? ?程序時(shí)冒晰,文本文件并沒(méi)有保存到D盤(pán)同衣,還是保存到了桌面竟块,我想可能是因?yàn)榇藭r(shí)的project就是在桌面的原因吧,如果這個(gè)時(shí)候想要把文本保存到D盤(pán)耐齐,就得借助于Session選項(xiàng)浪秘。

R對(duì)象按其數(shù)據(jù)結(jié)構(gòu)可以分為五種,如下圖埠况,總結(jié)的非常清晰明了:

儲(chǔ)存R的數(shù)據(jù)時(shí)耸携,可以選擇CSV,也可以選擇R自帶文件格式辕翰。選擇CSV的優(yōu)勢(shì)就是文件可以共享夺衍,都能讀出來(lái)。選擇R自帶格式的優(yōu)勢(shì)是占用空間小喜命,但是除了R以外沟沙,基本上不能被其他軟件打開(kāi)。

讀取excel文件時(shí)壁榕,先將excel另存為csv格式矛紫,然后再用R導(dǎo)入,這樣能確保轉(zhuǎn)換導(dǎo)入效果最好牌里。


也可以將剪切板中的內(nèi)容導(dǎo)入R

當(dāng)導(dǎo)入非文本文件時(shí)颊咬,用文件所對(duì)應(yīng)原始軟件的導(dǎo)出功能將該文件導(dǎo)出為文本文件如csv,是將數(shù)據(jù)轉(zhuǎn)錄為文本的最安全也是自由度最高的方法牡辽。如果不能通過(guò)原始軟件導(dǎo)出喳篇,那就只能借助于R包了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末态辛,一起剝皮案震驚了整個(gè)濱河市麸澜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌因妙,老刑警劉巖痰憎,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異攀涵,居然都是意外死亡铣耘,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)以故,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蜗细,“玉大人,你說(shuō)我怎么就攤上這事÷剑” “怎么了踪区?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)吊骤。 經(jīng)常有香客問(wèn)我缎岗,道長(zhǎng),這世上最難降的妖魔是什么白粉? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任传泊,我火速辦了婚禮,結(jié)果婚禮上鸭巴,老公的妹妹穿的比我還像新娘眷细。我一直安慰自己,他們只是感情好鹃祖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布溪椎。 她就那樣靜靜地躺著,像睡著了一般恬口。 火紅的嫁衣襯著肌膚如雪校读。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天楷兽,我揣著相機(jī)與錄音地熄,去河邊找鬼。 笑死芯杀,一個(gè)胖子當(dāng)著我的面吹牛端考,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播揭厚,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼却特,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了筛圆?” 一聲冷哼從身側(cè)響起裂明,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎太援,沒(méi)想到半個(gè)月后闽晦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡提岔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年仙蛉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碱蒙。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荠瘪,死狀恐怖戈擒,靈堂內(nèi)的尸體忽然破棺而出嘲碱,到底是詐尸還是另有隱情手蝎,我是刑警寧澤散怖,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站篮绰,受9級(jí)特大地震影響后雷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阶牍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一喷面、第九天 我趴在偏房一處隱蔽的房頂上張望星瘾。 院中可真熱鬧走孽,春花似錦、人聲如沸琳状。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)念逞。三九已至困食,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間翎承,已是汗流浹背硕盹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叨咖,地道東北人瘩例。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像甸各,于是被迫代替她去往敵國(guó)和親垛贤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,938評(píng)論 2 89
  • 今天學(xué)習(xí)內(nèi)容如下: 1、字面量和常量2儒恋、引出變量3善绎、變量分類(lèi)、作用域和使用規(guī)則4诫尽、數(shù)據(jù)類(lèi)型和分類(lèi)5禀酱、boolean...
    博行天下閱讀 599評(píng)論 0 3
  • 今天看的是其他人的文章哈 傳送門(mén) 一、PHP主要輸出方式 1箱锐、echo echo() 實(shí)際上不是一個(gè)函數(shù)比勉,是php...
    動(dòng)感超人丶閱讀 290評(píng)論 0 0
  • 未來(lái)十年拼什么?共享經(jīng)濟(jì)時(shí)代不改變你將永遠(yuǎn)沒(méi)有機(jī)會(huì) 專(zhuān)家:分享經(jīng)濟(jì)簡(jiǎn)單說(shuō)就是 “人人為我、我為人人” 有人把生意二...
    滿志向閱讀 213評(píng)論 0 0
  • 2018年雅思考試報(bào)名官網(wǎng)入口已經(jīng)開(kāi)放啦!2018年雅思考試報(bào)名入口在哪兒?2018年雅思考試報(bào)名網(wǎng)站入口已開(kāi)...
    上海環(huán)球教育閱讀 309評(píng)論 0 0