-
R数据结构
2.矩阵(matrix):向量+维度属性(整数向量:nrow, ncol)
2.1 创建矩阵:
方法一: x <- matrix(nrow=3, ncol=2) #创建一个3行2列矩阵,元素为NA。该函数创建矩阵时先列后行。
x <- matrix(1 : 6, nrow=3, ncol=2) #按列填充元素
方法二: y <- 1 : 6 #生成一个向量
dim(y) <- c(2, 3) #指定行数与列数
其他:dim(matrix):查看矩阵matrix的行数与列数
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.数组:与矩阵类似,但维度可以大于2
创建数组:x <- array(1:24, dim=c(4, 6)) #参数1填充元素,参数2指定维度
y <- array(1:24, dim=c(2, 3, 4))
查看全部 -
向量(vector):只能包含同一类型的对象
创建向量的方法:1. 定义 x <- vector(数据类型,数据长度)
2. x1 <- 1:4 #创建整型向量1-4
3. x3 <- c(向量的元素) # 例如构建向量x3<-c(1,2)
#对于向量中元素类型不同的情况,R语言中会自动强制转化
例如x3 <- c(TRUE,10,"a") 会转换为("TRUE","10","a")
as.numeric(x) #将x转换为数值型向量
as.logical(x) #将x转换为逻辑向量
as.character(x) #将x转换为字符型向量
names(x1) <- c("a","b","c") #给向量x1进行命名,“a”为第一个向量元
素的名字,依次类推
查看全部 -
#日期
查看全部 -
1
查看全部 -
1
查看全部 -
1
查看全部 -
数组三个维度的排列
查看全部 -
#tapply函数的应用
#对向量的子集进行操作
#rnorm(5)前五个正态分布
#runif(5)中间五个均匀分布
#rnorm(5,1)均值标准差为0的分布
x<-c(rnorm(5),runif(5),rnorm(5,1))#第三个为均值为1,方差为0的正态分布
f<-gl(3,5)#
tapply(x,f,mean)
tapply(x,f,mean,simplify=FALSE)
查看全部 -
#data frame 数据框
#第一个参数代表第一列的内容,第二个参数表示第二列的内容
df <- data.frame(id = c(1,2,3,4),name = c("a","b","c","d"),gender = c(TRUE,TRUE,FALSE,FALSE))
#查看数据框有多少行
nrow(df)
#查看数据框有多少列
ncol(df)
#定义一个类似矩阵的数据框
df2 <- data.frame(id=c(1,2,3,4),score = c(89,90,70,50))
#数据框转换成矩阵,要求,第二个参数的数据类型必须一样
data.matrix(df2)
查看全部 -
本章小结-学习内容
查看全部 -
数据结构矩阵函数
查看全部 -
4-7总结数据信息
head(airquality)(airquality的前6行)
head(airquality,10)(airquality的前10行)
tail(airquality)(airquality的后6行)
summary(airquality的变量的描述统计)
str(airquality)(把airquality进行了总结)
table(airquality$Ozone,useNA="ifany")(如果有缺失值就总结出来)
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)(与上面类似 结果更扁平化)
object.size(airquality)(数据的大小)
print(object.size(airquality),units="kb")
查看全部 -
4-6排序
排序
sort:对向量进行排序;返回排好序的内容
order:返回排好序的内容的下标/多个排序标准
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)(返回的不是内容本身 返回了行号)
x[order(x$v2),](对整个数据框按照v2这一列进行排序)
x[order(x$v4,x$v2),](对整个数据框按照v4这一列进行排序,如果v4中有重复的元素,则按照v2排序)
x[order(x$v4,x$v2),decreasing=TRUE](降序)
查看全部 -
4-5split
split:根据因子或因子列表将向量或者其他对象进行分组,通常与lapply一起使用。
split(参数):split(向量/列表/数据框,因子/因子列表)
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)(按月份来查看空气质量的数据)
table(airquality$Month)(airquality到底包含了多少个月份的数据并且每个月下面多少条记录)
lapply(s,function(x) colMeans(x[,c("Ozone","Wind","Temp")]))(计算每1个月的臭氧含量、风速和温度的平均值)
sapply(s,function(x) colMeans(x[,c("Ozone","Wind","Temp")],na.rm=TRUE))(不包含缺失值)
查看全部 -
4-4 tapply
tapply:对向量的子集进行操作 tapply(参数):tapply(向量,因子/因子列表,函数/函数名)
x<-c(rnom(5),runif(5),rnorm(5,1))(15个元素,前5个来自正态分布,中间5个来自均匀分布,后5个来自均值为5,标准差为1的正态分布)
建立因子:f<-gl(3,5)(3代表这个因子包含3个水平,5代表每个水平下有5个元素)
tapply(x,f,mean)(对向量x按照因子的水平进行分组,对每一组求均值)
tapply(x,f,mean,simplify=FALSE)
查看全部
举报