R語(yǔ)言實(shí)戰(zhàn)-2創(chuàng)建數(shù)據(jù)集

第二天厚满,繼續(xù)學(xué)習(xí)R語(yǔ)言府瞄。

2.創(chuàng)建數(shù)據(jù)集

2.1數(shù)據(jù)集

數(shù)據(jù)構(gòu)成的一個(gè)矩形數(shù)組,行表示觀測(cè)碘箍,列表示變量遵馆。

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

標(biāo)量:只含有一個(gè)元素的向量。

2.2.1向量

a<-c("k","j","h","a","c")
a[3] #訪問(wèn)向量中的第三個(gè)元素
a[c(1,3,5)]
a[2:5]

冒號(hào)的用法a<-c(2:6)等價(jià)于 a<-c(2,3,4,5,6)

2.2.2矩陣

矩陣:一個(gè)二維數(shù)組丰榴,可通過(guò)matrix()創(chuàng)建矩陣

mymatrix<-matrix(vetor,nrow = number_of_row,ncol = number_of_colums,
byrow = logical_value,dimnames = list(rownames,colnames))

將一個(gè)向量(第一個(gè)參數(shù)vector)轉(zhuǎn)換為矩陣货邓,
nrow指定行數(shù),
ncol指定列數(shù)四濒,
byrow TRUE或FALSE確定是按行排列還是按列排列(默認(rèn)按列)换况,dimnames指定行名和列名职辨,行名和列名分別用向量表示。

y<-matrix(1:20,nrow = 5,ncol = 4) #創(chuàng)建一個(gè)5*4的矩陣
y
cells<-c(1,25,24,13)
rnames<-c("R1","R2")
cnames<-c("C1","C2")
mymatrix<-matrix(cells,nrow = 2,ncol = 2,byrow = TRUE,dimnames = list(rnames,cnames))
mymatrix

矩陣中元素的引用
x[2,]第二行
x[,2]第二列
x[1,4]第一行第四列元素
x[1,c(4,5)]第一行戈二,第四第五個(gè)元素
維度超過(guò)2時(shí)舒裤,使用數(shù)組。有多重模式的數(shù)據(jù)時(shí)觉吭,使用數(shù)據(jù)框~

2.2.3數(shù)組

用array函數(shù)創(chuàng)建:

myarray<-array(vector,dimensions,dimnames)

其中第二個(gè)參數(shù)dimensions是緯度腾供,是一個(gè)數(shù)值型向量;
第三個(gè)參數(shù)dimnames是各維的名字鲜滩,是個(gè)列表.

dim1<-c("A1","A2")
dim2<-c("B1","B2","B3")
dim3<-c("C1","C2","C3","C4")
Z<-array(1:24,c(2,3,4),dimnames = list(dim1,dim2,dim3))
Z

數(shù)組是矩陣的推廣伴鳖,其中的元素只能是一種模式。
上面的例子中Z[1,2,3]為15.

2.2.4數(shù)據(jù)框

數(shù)據(jù)框是R中最常處理的數(shù)據(jù)結(jié)構(gòu)

mydataframe<-data.frame(col1,col2,col3);

每一列的名稱(chēng)可由names函數(shù)指定用以下兩個(gè)方法進(jìn)行徙硅;
比如:

names(study) <- c("wei","hei","gen")#修改列名
row.names(study)<-c("Mary","Alice","Bob","Judy")#修改行名
patientID<-c(1,2,3,4)
age<-c(25,34,28,52)
diabetes<-c("Type1","Type2","Type1","Type1")
status<-c("Poor","Improved","Excellent","Poor")
patientdata<-data.frame(patientID,age,diabetes,status)
patientdata
class(patientdata) #產(chǎn)看patientdata的類(lèi)型
patientdata[1:2] #選了數(shù)據(jù)框第一列和第二列黎侈;
patientdata[1,2] #選的是第一行第二列的元素;
patientdata[1:2,] #選的是第一行第二行(注意沒(méi)有逗號(hào)的時(shí)候默認(rèn)是選擇的列)
patientdata[c("diabetes","status")] #使用列名來(lái)選取元素
patientdata$age #選取數(shù)據(jù)框patientdata中age這一列

table()函數(shù)生成兩個(gè)變量的列聯(lián)表(即符合條件的個(gè)體數(shù))

table(patientdata$diabetes,patientdata$status)

以上就是得到符合兩個(gè)條件交叉的geti數(shù)量
attach()函數(shù)
attach()可將數(shù)據(jù)框添加到R的搜索路徑中闷游。R在遇到一個(gè)變量名后峻汉,將檢查搜索
路徑中的數(shù)據(jù)框,以定位到這個(gè)變量脐往。
舉個(gè)栗子:

summary(mtcars$mpg)#生成四分位數(shù)及均值
plot(mtcars$mpg,mtcars$disp)
plot(mtcars$mpg,mtcars$wt)#等價(jià)于下列代碼:
attach(mtcars)
summary(mpg)
plot(mpg,disp)
detach(mtcars) #注意用完后別忘再把變量從搜索路徑中請(qǐng)出來(lái)

注意如果數(shù)據(jù)框中的變量與數(shù)據(jù)框外的變量同名休吠,則attach(dataframe)會(huì)把數(shù)據(jù)
框外的變量留下來(lái)放在數(shù)據(jù)框中,即原有對(duì)象優(yōu)先(而不是覆蓋)R挡尽A鼋浮!
上面的例子還可以用with()函數(shù)進(jìn)行改寫(xiě):

with(mtcars,{
summary(mpg,disp,wt)
plot(mpg,disp)
plot(mpg,wt)
})

以上模式是with(dataset,{statements})
注大括號(hào)內(nèi)賦值的變量梅尤,僅在大括號(hào)內(nèi)有效柜思。若要讓大括號(hào)內(nèi)賦值的變量在大括號(hào)外有效的話(huà),需要使用<<-這個(gè)符號(hào)賦值巷燥。
指定實(shí)例標(biāo)識(shí)符
在創(chuàng)建數(shù)據(jù)框時(shí)指定:

patientdata<-data.frame(patientID,age,diabetes,status,row.names = patientID)

這里一定是row.names!!!

2.2.5因子

其實(shí)就是定類(lèi)和定序類(lèi)型的變量(也就是分類(lèi)變量)
函數(shù)factor()以一個(gè)整數(shù)向量的形式存儲(chǔ)類(lèi)別值赡盘,取值范圍是【1-k】,k是變量中唯一值的個(gè)數(shù)。
舉個(gè)例子

diabetes<-c("Type1","Type2","Type1","Type1")
diabetes<-factor(diabetes)

將此向量存儲(chǔ)為(1,2,1,1),并在內(nèi)部關(guān)聯(lián)1=Type1,2=Type2(復(fù)制的順序是根據(jù)字母順序定的)
有序的變量的話(huà)缰揪,需要加order=TRUE.
若是想要按照自己的順序排列陨享,需要使用levels選項(xiàng):

status<-factor(status,ordered = TRUE,levels=c("Poor","Improved","Excellent"))

2.2.6列表

列表是一些對(duì)象的有序集合,可以整合若干向量钝腺、矩陣抛姑、數(shù)據(jù)框,甚至其他列表的組合艳狐。

mylist<-list(object1,object2)

2.3數(shù)據(jù)的輸入

2.3.1鍵盤(pán)輸入數(shù)據(jù)

創(chuàng)建空的數(shù)據(jù)框

mydata<-data.frame(age=numeric(0),gender=character(0),weight=numeric(0))

編輯數(shù)據(jù)

mydata<-edit(mydata)
fix(mydata) #以上兩句等效

2.3.2從帶分隔符的文本文件導(dǎo)入數(shù)據(jù)

mydataframe<-read.table("file",header = logical_value,sep = "delimiter",row.names = "name")
header 表示文件是否在第一行包含了變量名的邏輯型變量
row.names用于指定行名定硝,默認(rèn)情況下,字符型變量將被轉(zhuǎn)換為因子毫目。
設(shè)置選項(xiàng)stringAsFactor=FALSE即可停止轉(zhuǎn)換J叻取;逦辍!
函數(shù)file(),gzfile(),unz(),url()可作為文件名參數(shù)使用~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末星爪,一起剝皮案震驚了整個(gè)濱河市浆西,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顽腾,老刑警劉巖近零,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異抄肖,居然都是意外死亡久信,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)漓摩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)裙士,“玉大人,你說(shuō)我怎么就攤上這事管毙⊥茸担” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵夭咬,是天一觀的道長(zhǎng)啃炸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)卓舵,這世上最難降的妖魔是什么南用? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮掏湾,結(jié)果婚禮上裹虫,老公的妹妹穿的比我還像新娘。我一直安慰自己融击,他們只是感情好筑公,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著砚嘴,像睡著了一般十酣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上际长,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音兴泥,去河邊找鬼工育。 笑死,一個(gè)胖子當(dāng)著我的面吹牛搓彻,可吹牛的內(nèi)容都是我干的如绸。 我是一名探鬼主播嘱朽,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怔接!你這毒婦竟也來(lái)了搪泳?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扼脐,失蹤者是張志新(化名)和其女友劉穎岸军,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體瓦侮,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡艰赞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肚吏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片方妖。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖罚攀,靈堂內(nèi)的尸體忽然破棺而出党觅,到底是詐尸還是另有隱情,我是刑警寧澤斋泄,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布杯瞻,位于F島的核電站,受9級(jí)特大地震影響是己,放射性物質(zhì)發(fā)生泄漏又兵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一卒废、第九天 我趴在偏房一處隱蔽的房頂上張望沛厨。 院中可真熱鬧,春花似錦摔认、人聲如沸逆皮。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)电谣。三九已至,卻和暖如春抹蚀,著一層夾襖步出監(jiān)牢的瞬間剿牺,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工环壤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晒来,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓郑现,卻偏偏與公主長(zhǎng)得像湃崩,于是被迫代替她去往敵國(guó)和親荧降。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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