
R語言之創建數據集
數據集通常是由數據構成的一個矩形數組,行表示觀測,列表示變量。
R中有許多用于存儲數據的結構,包括標量、向量、數組、數據框和列表。
在R中,對象(object)是指可以賦值給變量的任何事物,包括常量、數據結構、函數、甚至是圖形。因子(factor)是名義型變量或有序型變量,在R中被特殊地存儲和處理。
R中的數據結構:
1.1向量
向量是用于存儲數值型、字符型或邏輯型數據的一維數組。創建向量使用函數c(),如下例所示:
數值型向量:a<-c(1,2,5,3,6,-2,4)
字符型向量:b<-c("one","two","three")
邏輯型向量:c<-c(TRUE,TRUE,TRUE,FALSE,TRUE)
注:單個向量中的數據必須擁有相同的類型或模式。
標量是只含一個元素的向量,例如f<-3、g<-"US"和h<-TRUE。它們用于保存常量。
訪問向量中的元素,可在方括號中給定元素所處位置的數值,如:a[c(2,4)]用于訪問向量a中的第二個和第四個元 素。
1.2矩陣
矩陣是一個二維數組,只是每個元素都擁有相同的模式(數值型、字符型或邏輯型),可以通過matrix創建矩陣
一般使用格式為:
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用以指定
行和列的維數,dimnames包含了可選的以字符型向量表示的行名和列名。選項byrow則表明矩陣應當按行
填充(byrow=TRUE)還是按列填充(byrow=FALSE),默認情況下按列填充。代碼演示如下:
[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數組
數組與矩陣類似,但是維數可以大于2。數組可通過array函數創建,形式如下:
myarray<-array(vector,dimensions,dimnames),其中vector包含了數組中的數據,dimensions是一個數值型向量,給出了各個維度下標的最大值,而dimnames是可選的、各維度名稱標簽的列表。代碼如下:
[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數據框
數據框中不同的列可以包含不同模式(數值型、字符型等)的數據,是R中最常處理的數據結構。數據框可以通過函數data.frame()創建:mydata<-data.frame(col1,col2,col3,...),其中的列向量col1,col2,col3,...可為任何類型(如字符型、數值型或邏輯型)。每一列的名稱可由函數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
$被用來選取一個給定數據框中的某個特定變量,上面table(patientdata$diabetes,patientdata$status)生成了 diabetes和status的列聯表。
函數attach()可將數據框添加到R的搜索路徑中。
函數detach()將數據框從搜素路徑中移除。
相對于attach。多數的R書籍更推薦使用函數with()。
1.5因子
變量可歸結為名義型、有序型或連續型變量。類別(名義型)變量和有序類別(有序型)變量在R中稱為因子。因子在R中非常重要,因為它決定了數據的分析方式以及如何進行視覺呈現。
函數factor()以一個整數向量的形式存儲類別值,整數的取值范圍是[1...k](其中k是名義變量中唯一值得個數),同時一個由字符串(原始值)組成的內部向量將映射到這些整數上。
名義型eg:假設有向量:diabetes<-c("Type1","Type2","Type1","Type1")
語句diabetes<-factor(diabetes)將此向量存儲為(1,2,1,1).
有序型eg: 對于給定變量status<-c("Poor","Improved","Excellent","Poor")
語句status<-factor(status,ordered=TRUE)會將向量編碼為(3,2,1,3)。
1.6列表(list)
列表是R的數據類型中最為復雜的一種。列表就是一些對象的(或成分,component)的有序集合。列表允許你整合若干(可能無關)的對象到單個對象名下。例如,某個列表中可能是若干向量、矩陣、數據框,甚至是其他列表的組合??梢允褂煤瘮祃ist()創建列表:
mylist<-list(object1,object2,...)
注:列表成為了R中的重要數據結構。
1.列表允許以一種簡單的方式組織和重新調用不相干的信息;
2.許多R函數的運行結果都是以列表的形式返回的。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25