-
R數(shù)據(jù)結(jié)構(gòu)
2.矩陣(matrix):向量+維度屬性(整數(shù)向量:nrow, ncol)
2.1 創(chuàng)建矩陣:
????????方法一: x <- matrix(nrow=3, ncol=2) #創(chuàng)建一個3行2列矩陣,元素為NA。該函數(shù)創(chuàng)建矩陣時先列后行。
????????????????????????x <- matrix(1 : 6, nrow=3, ncol=2) #按列填充元素
????????方法二: y <- 1 : 6? #生成一個向量
????????????????????? ?dim(y) <- c(2, 3) #指定行數(shù)與列數(shù)
其他:dim(matrix):查看矩陣matrix的行數(shù)與列數(shù)
attributes(matrix):查看矩陣matrix有哪些屬性
2.2 拼接矩陣
y1?<-?1?:?6
dim(y1)?<-?c(2?:?3)
y2?<-?matrix(1:6,?nrow?=2,?ncol=3)
rbind(y1,?y2)?#按行拼接
cbind(y1,?y2)?#按列拼接3.數(shù)組:與矩陣類似,但維度可以大于2
創(chuàng)建數(shù)組:x <- array(1:24, dim=c(4, 6)) #參數(shù)1填充元素,參數(shù)2指定維度
????????????????y <- array(1:24, dim=c(2, 3, 4))
查看全部 -
向量(vector):只能包含同一類型的對象
創(chuàng)建向量的方法:1. 定義 x <- vector(數(shù)據(jù)類型,數(shù)據(jù)長度)
?????????????????????????? 2. x1 <- 1:4 ? #創(chuàng)建整型向量1-4
?????????????????????????? 3. x3 <- c(向量的元素)? # 例如構(gòu)建向量x3<-c(1,2)
#對于向量中元素類型不同的情況,R語言中會自動強制轉(zhuǎn)化
?例如x3 <- c(TRUE,10,"a") 會轉(zhuǎn)換為("TRUE","10","a")
?as.numeric(x)?? #將x轉(zhuǎn)換為數(shù)值型向量
?as.logical(x)????? #將x轉(zhuǎn)換為邏輯向量
?as.character(x)? #將x轉(zhuǎn)換為字符型向量
names(x1) <- c("a","b","c")? #給向量x1進行命名,“a”為第一個向量元????
????????????????????????????????????????????? 素的名字,依次類推
查看全部 -
#日期
查看全部 -
1
查看全部 -
1
查看全部 -
1
查看全部 -
數(shù)組三個維度的排列
查看全部 -
#tapply函數(shù)的應(yīng)用
#對向量的子集進行操作
#rnorm(5)前五個正態(tài)分布
#runif(5)中間五個均勻分布
#rnorm(5,1)均值標(biāo)準差為0的分布
x<-c(rnorm(5),runif(5),rnorm(5,1))#第三個為均值為1,方差為0的正態(tài)分布
f<-gl(3,5)#
tapply(x,f,mean)
tapply(x,f,mean,simplify=FALSE)
查看全部 -
#data frame 數(shù)據(jù)框
#第一個參數(shù)代表第一列的內(nèi)容,第二個參數(shù)表示第二列的內(nèi)容
df <- data.frame(id = c(1,2,3,4),name = c("a","b","c","d"),gender = c(TRUE,TRUE,FALSE,FALSE))????
#查看數(shù)據(jù)框有多少行
nrow(df)
#查看數(shù)據(jù)框有多少列
ncol(df)
#定義一個類似矩陣的數(shù)據(jù)框
df2 <- data.frame(id=c(1,2,3,4),score = c(89,90,70,50))
#數(shù)據(jù)框轉(zhuǎn)換成矩陣,要求,第二個參數(shù)的數(shù)據(jù)類型必須一樣
data.matrix(df2)
查看全部 -
本章小結(jié)-學(xué)習(xí)內(nèi)容
查看全部 -
數(shù)據(jù)結(jié)構(gòu)矩陣函數(shù)
查看全部 -
4-7總結(jié)數(shù)據(jù)信息
head(airquality)(airquality的前6行)
head(airquality,10)(airquality的前10行)
tail(airquality)(airquality的后6行)
summary(airquality的變量的描述統(tǒng)計)
str(airquality)(把airquality進行了總結(jié))
table(airquality$Ozone,useNA="ifany")(如果有缺失值就總結(jié)出來)
table(airquality$Month,airquality$Day)(得到二維的表)
any(is.na(airquality$Ozone))(如果返回的是TRUE,就說明一定有缺失值)
sum(is.na(airquality$Ozone))(臭氧含量中有多少缺失值)
all(airquality$Month<12)(是不是所有的月份都小于12)
titanic<-as.data.frame(Titanic)
head(Titanic)
dim(Titanic)(維度)
summary(Titanic)
x<-xtabs(Freq~Class+Age,data=titanic)(Class+Age的交叉頻率,)
ftable(x)(與上面類似 結(jié)果更扁平化)
object.size(airquality)(數(shù)據(jù)的大小)
print(object.size(airquality),units="kb")
查看全部 -
4-6排序
排序
sort:對向量進行排序;返回排好序的內(nèi)容
order:返回排好序的內(nèi)容的下標(biāo)/多個排序標(biāo)準
x<-data.frame(v1=1:5,v2=c(10,7,9,6,8),v3=11:15,v4=c(1,1,2,2,1))
sort(x$v2)(對v2這一列按照升序進行排序)
sort(x$v2,decreasing=TRUE)(對v2這一列按照降序進行排序)
order(x$v2)(返回的不是內(nèi)容本身 返回了行號)
x[order(x$v2),](對整個數(shù)據(jù)框按照v2這一列進行排序)
x[order(x$v4,x$v2),](對整個數(shù)據(jù)框按照v4這一列進行排序,如果v4中有重復(fù)的元素,則按照v2排序)
x[order(x$v4,x$v2),decreasing=TRUE](降序)
查看全部 -
4-5split
split:根據(jù)因子或因子列表將向量或者其他對象進行分組,通常與lapply一起使用。
? ? ? ? split(參數(shù)):split(向量/列表/數(shù)據(jù)框,因子/因子列表)
x<-c(rnom(5),runif(5),rnorm(5,1))
f<-gl(3,5)
split(x,f)(返回了列表,有3個水平,每個水平有5個元素)
lapply(split(x,f),mean)
head(airquality)
s<-split(airquality,airquality$Month)(按月份來查看空氣質(zhì)量的數(shù)據(jù))
table(airquality$Month)(airquality到底包含了多少個月份的數(shù)據(jù)并且每個月下面多少條記錄)
lapply(s,function(x) colMeans(x[,c("Ozone","Wind","Temp")]))(計算每1個月的臭氧含量、風(fēng)速和溫度的平均值)
sapply(s,function(x) colMeans(x[,c("Ozone","Wind","Temp")],na.rm=TRUE))(不包含缺失值)
查看全部 -
4-4 tapply
tapply:對向量的子集進行操作? ? ?tapply(參數(shù)):tapply(向量,因子/因子列表,函數(shù)/函數(shù)名)
x<-c(rnom(5),runif(5),rnorm(5,1))(15個元素,前5個來自正態(tài)分布,中間5個來自均勻分布,后5個來自均值為5,標(biāo)準差為1的正態(tài)分布)
建立因子:f<-gl(3,5)(3代表這個因子包含3個水平,5代表每個水平下有5個元素)
tapply(x,f,mean)(對向量x按照因子的水平進行分組,對每一組求均值)
tapply(x,f,mean,simplify=FALSE)
查看全部
舉報