04.2#R基礎(系統1)-R的數據結構

一、R的數據結構

對象的類型:
數值型  Numeric  例如:100、200
字符型  Character  例如:"china"
邏輯型  Logical     例如:true、false
因子型  Factor    表示不同類別b
複數型  Complex   例如2+3i

    向量 (vector) 只能包含同一種類型的對象
    註釋#

創建向量 
x<-vector("character",length=10)  #向量類型 向量長度
x1<-1:4  
x2<-c(1,2,3,4)
    如果c中的向量類型不一樣,它會將三個元素轉換成一樣

as.numeric(x4)  #將向量x4轉換成數字
as.logical()
as.character()

給向量的元素命名
names(x1)<-c("a","b","c","d")  #第一個元素的名稱爲a,……

矩陣(matrix)
      向量+維度屬性(整數向量:nrow,ncol)

創建矩陣
x<-matrix(nrow=3,ncol=2)   #三行兩列
x<-matrix(1:6,nrow=3,ncol=2)  #有內容


y<-1:6
dim(y)<-c(2,3)   #y將變成矩陣 

dim(x)         #查看當前矩陣有多少行列
attributes(x)  #查看當前矩陣的信息


兩個矩陣拼接
rbind(y1,y2)  #安行拼接
cbind(y1,y2)  #安列拼接

數組(array)
與矩陣類似,但是維度可以大於2;矩陣只可以等於2
創建數組
x<-array(1:24,dim=c(4,6))
x<-array(1:24,dim=c(2,3,4)) 


列表(list)
可以包含不同類型的對象

創建列表(list)
x<-list("a",2,10L,3+4i,TURE)

列表元素命名
x2<-list(a=1,b=2,c=3)

x3<-list(c(1,2,3),c(4,5,6,7))

給矩陣的元素命名
x<-matrix(1:6,nrow=2,ncol=3)
dimnames(x)<-list(c("a","b"),c("c","d","e"))


因子(factor)
分類數據  有序&無序
整數向量+標籤(label)(優於整數向量)

創建因子
x<-factor(c("female","female","male","male","female"))

x<-factor(c("female","female","male","male","female"),levels=c("male","female"))


table(x) 查看因子情況

unclass(x) 去掉因子屬性查看內容


缺失值(missing value)
NA/NaN  NaN屬於NA,NA不屬於NaN

NaN:只表示數字的缺失值

判斷是否有缺失值
    is.na(x)  is.nan(x)



數據框(date frame)
存儲表格數據(tabular date)
視爲各個元素相同的列表
每個元素代表一列數據
每個元素的長度代表行數
元素的類型可以不同

創建數據框
df<-data.frame(id=c(1,2,3,4),name=c("a","b","c","d"),sex=c(TRUE,TRUE,TRUE,FALSE))

nrow(df)  #查看有多少行
ncol(df)   #查看有多少列

data.matrix(df2)  #將數據框轉換成矩陣  (需要每列元素的類型都是相同的)


日期與時間(date,time)
日期:DATE
      距離1970-01-01的天數   /date() /Sys.Date()
 weekdays()  months()  quarters()

date() 當前日期時間
x1<-Sys.Date()  

x2<-as.Date("2015-01-01")  #存儲爲date類型的數據

weekdays(x2)  #查看星期
quarters(x2)  #查看季度
 
時間  POSIXct  POSIXLt
距離距離1970-01-01的過去了多少秒   Sys.time()
POSIXct  :整數 常用於存入數據框
POSIXLt  :列表,還包含星期、年、月、日 

x<-Sys.time()

p<-as.POSIXLt()  轉壞類型

name(unclass(p))  查看存儲了什麼東西
p$sec   #獲取秒



發佈了61 篇原創文章 · 獲贊 4 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章