
R語(yǔ)言之創(chuàng)建數(shù)據(jù)集
數(shù)據(jù)集通常是由數(shù)據(jù)構(gòu)成的一個(gè)矩形數(shù)組,行表示觀測(cè),列表示變量。
R中有許多用于存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu),包括標(biāo)量、向量、數(shù)組、數(shù)據(jù)框和列表。
在R中,對(duì)象(object)是指可以賦值給變量的任何事物,包括常量、數(shù)據(jù)結(jié)構(gòu)、函數(shù)、甚至是圖形。因子(factor)是名義型變量或有序型變量,在R中被特殊地存儲(chǔ)和處理。
R中的數(shù)據(jù)結(jié)構(gòu):
1.1向量
向量是用于存儲(chǔ)數(shù)值型、字符型或邏輯型數(shù)據(jù)的一維數(shù)組。創(chuàng)建向量使用函數(shù)c(),如下例所示:
數(shù)值型向量:a<-c(1,2,5,3,6,-2,4)
字符型向量:b<-c("one","two","three")
邏輯型向量:c<-c(TRUE,TRUE,TRUE,FALSE,TRUE)
注:?jiǎn)蝹€(gè)向量中的數(shù)據(jù)必須擁有相同的類(lèi)型或模式。
標(biāo)量是只含一個(gè)元素的向量,例如f<-3、g<-"US"和h<-TRUE。它們用于保存常量。
訪問(wèn)向量中的元素,可在方括號(hào)中給定元素所處位置的數(shù)值,如:a[c(2,4)]用于訪問(wèn)向量a中的第二個(gè)和第四個(gè)元 素。
1.2矩陣
矩陣是一個(gè)二維數(shù)組,只是每個(gè)元素都擁有相同的模式(數(shù)值型、字符型或邏輯型),可以通過(guò)matrix創(chuàng)建矩陣
一般使用格式為:
mymatrix<-matrix(vector,nrow=number_of_rows,ncol=number_of_columns,byrow=logical_value,dimnames=list(
char_vector_rownames,char_vector_colnames)) ,其中vector包含了矩陣的元素,nrow和ncol用以指定
行和列的維數(shù),dimnames包含了可選的以字符型向量表示的行名和列名。選項(xiàng)byrow則表明矩陣應(yīng)當(dāng)按行
填充(byrow=TRUE)還是按列填充(byrow=FALSE),默認(rèn)情況下按列填充。代碼演示如下:
[plain] view plain copy
> cells<-c(1,23,56,485)
> rnames<-c("R1","R2")
> cnames<-c("c1","c2")
[plain] view plain copy
<pre name="code" class="html">> mymatrix<-matrix(cells
,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames))
> mymatrix
c1 c2
R1 1 23
R2 56 485
1.3數(shù)組
數(shù)組與矩陣類(lèi)似,但是維數(shù)可以大于2。數(shù)組可通過(guò)array函數(shù)創(chuàng)建,形式如下:
myarray<-array(vector,dimensions,dimnames),其中vector包含了數(shù)組中的數(shù)據(jù),dimensions是一個(gè)數(shù)值型向量,給出了各個(gè)維度下標(biāo)的最大值,而dimnames是可選的、各維度名稱(chēng)標(biāo)簽的列表。代碼如下:
[html] view plain copy
> dim<-c("A1","A2")
> 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
, , C1
B1 B2 B3
A1 1 3 5
A2 2 4 6
, , C2
B1 B2 B3
A1 7 9 11
A2 8 10 12
, , C3
B1 B2 B3
A1 13 15 17
A2 14 16 18
, , C4
B1 B2 B3
A1 19 21 23
A2 20 22 24
1.4數(shù)據(jù)框
數(shù)據(jù)框中不同的列可以包含不同模式(數(shù)值型、字符型等)的數(shù)據(jù),是R中最常處理的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)框可以通過(guò)函數(shù)data.frame()創(chuàng)建:mydata<-data.frame(col1,col2,col3,...),其中的列向量col1,col2,col3,...可為任何類(lèi)型(如字符型、數(shù)值型或邏輯型)。每一列的名稱(chēng)可由函數(shù)names指定。代碼如下:
[html] view plain copy
> age<-c(25,34,28,53)
> patientID<-c(1,2,3,4)
> diabetes<-c("Type1","Type2","Type1","Type1")
> status<-c("Poor","Improved","Excellent","Poor")
> patientdata<-data.frame(patientID,age,diabetes,status)
> patientdata
patientID age diabetes status
1 1 25 Type1 Poor
2 2 34 Type2 Improved
3 3 28 Type1 Excellent
4 4 53 Type1 Poor
> patientdata$age
[1] 25 34 28 53
<pre name="code" class="html">> table(patientdata$diabetes,patientdata$status)
Excellent Improved Poor
Type1 1 0 2
Type2 0 1 0
$被用來(lái)選取一個(gè)給定數(shù)據(jù)框中的某個(gè)特定變量,上面table(patientdata$diabetes,patientdata$status)生成了 diabetes和status的列聯(lián)表。
函數(shù)attach()可將數(shù)據(jù)框添加到R的搜索路徑中。
函數(shù)detach()將數(shù)據(jù)框從搜素路徑中移除。
相對(duì)于attach。多數(shù)的R書(shū)籍更推薦使用函數(shù)with()。
1.5因子
變量可歸結(jié)為名義型、有序型或連續(xù)型變量。類(lèi)別(名義型)變量和有序類(lèi)別(有序型)變量在R中稱(chēng)為因子。因子在R中非常重要,因?yàn)樗鼪Q定了數(shù)據(jù)的分析方式以及如何進(jìn)行視覺(jué)呈現(xiàn)。
函數(shù)factor()以一個(gè)整數(shù)向量的形式存儲(chǔ)類(lèi)別值,整數(shù)的取值范圍是[1...k](其中k是名義變量中唯一值得個(gè)數(shù)),同時(shí)一個(gè)由字符串(原始值)組成的內(nèi)部向量將映射到這些整數(shù)上。
名義型eg:假設(shè)有向量:diabetes<-c("Type1","Type2","Type1","Type1")
語(yǔ)句diabetes<-factor(diabetes)將此向量存儲(chǔ)為(1,2,1,1).
有序型eg: 對(duì)于給定變量status<-c("Poor","Improved","Excellent","Poor")
語(yǔ)句status<-factor(status,ordered=TRUE)會(huì)將向量編碼為(3,2,1,3)。
1.6列表(list)
列表是R的數(shù)據(jù)類(lèi)型中最為復(fù)雜的一種。列表就是一些對(duì)象的(或成分,component)的有序集合。列表允許你整合若干(可能無(wú)關(guān))的對(duì)象到單個(gè)對(duì)象名下。例如,某個(gè)列表中可能是若干向量、矩陣、數(shù)據(jù)框,甚至是其他列表的組合??梢允褂煤瘮?shù)list()創(chuàng)建列表:
mylist<-list(object1,object2,...)
注:列表成為了R中的重要數(shù)據(jù)結(jié)構(gòu)。
1.列表允許以一種簡(jiǎn)單的方式組織和重新調(diào)用不相干的信息;
2.許多R函數(shù)的運(yùn)行結(jié)果都是以列表的形式返回的。
數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無(wú)論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢(xún)效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話(huà)題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類(lèi)型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專(zhuān)業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專(zhuān)業(yè)操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶(hù)體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷(xiāo)案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷(xiāo)成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類(lèi)分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類(lèi)分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10