-
一句话循环: lapply sapply split apply mapply tapply sort order 总结数据信息:head,tail,summary,str,table,xtabs,ftable,object.size查看全部
-
Kb 的 K 要大写!!!查看全部
-
#默认前六行或者后六行 head(airquality, 10)#查看前10行 tail(airquality, 10)#查看后10行 summary(airquality)#总结,数据分布整体把握 str(airquality)#以简洁方式对数据总结 > str(airquality) 'data.frame': 153 obs. of 7 variables:是数据框,有6个变量,对每个变量进行了153次测量 table(airquality$Ozone)第一行表示臭氧的含量,第二行表示这个含量出现的次数,第三行又是含量,第四行是出现次数 1 4 6 7 8 1 1 1 2 1 9 10 11 12 13 3 1 3 2 4 14 16 18 19 20 4 4 4 1 4 在table函数后面加上useNA表示还要统计NA的数量 any(is.na(airquality$Ozone))#判断是否有缺失值,true是有缺失值 sum(is.na(airquality$Ozone))#统计缺失值数量 all(airquality$Month < 12)#查看是不是所有的月份都小于12查看全部
-
排序 #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)) x sort(x$v2)#v2列按照升序排列 sort(x$v2,decreasing = True)#v2列按照降序排列 order(x$v2)#返回的不是内容本身,是内容的下标 x[order(x$v2),]#对x数据框按照v2进行排序 x[order(x$v4, x$v2, decreasing = True), ]#将序排列x,先按照v4,次要按照v2查看全部
-
sort order 排序查看全部
-
数据对象的5种基本类型:字符、数值、整数、复数、逻辑查看全部
-
#split #根据因子或者因子列表将向量或其他对象分组 #通常与lapply一起使用 #参数格式:split(向量/列表/数据框,因子/因子列表) x <- c(rnorm(5), runif(5),rnorm(5,1)) f <- gl(3,5) x f split(x,f) lapply(split(x,f), mean) lapply(split(x,f), sum) head(airquality) split(airquality,airquality$Month)#按照month分组查看 s <- split(airquality,airquality$Month) s table(airquality$Month)#查看每个Month下包含的记录数 # 求平均值 lapply(s, function(x) colMeans(x[,c("Ozone","Wind","Temp")])) #简化显示结果 sapply(s, function(x) colMeans(x[,c("Ozone","Wind","Temp")])) #处理缺失值 sapply(s, function(x) colMeans(x[,c("Ozone","Wind","Temp")],na.rm = T))查看全部
-
split:根据因子或因子列表将向量或其他对象分组。通常与lapply一起使用。 split(向量/列表/数据框,因子/因子列表) #根据因子列表的水平,即每个水平含有的元素个数,数据进行分组。(因子列表其实可以是$出来的) 对于lapply,可先对数据通过split进行分组,再在lapply中对每组数据运行函数。 可加入参数na.rm=TRUE使得计算不包含缺失值 ---------------------------------------- split #根据因子或者因子列表将向量或其他对象分组 用split函数查看某一部分数据,table函数具体计算每个出现的次数 table(airquality$Month)表示月份下出现的次数 lapply(s,function(x) colMeans(x[,c("Ozone","Wind","Temp")]))求每个月的臭氧,风速,温度的平均值,首先传入参数s,然后就是命名的函数,关心多个量所以用c组合,s本来是框查看全部
-
split 英[splɪt] 美[splɪt] vt. 分裂; 分开; <俚>(迅速)离开; 分担; n. 划分; 分歧; 裂缝; 劈叉; vi. <俚>走开; 揭发; 被撞碎; <美>[证券](股票)增加发行;查看全部
-
tapply查看全部
-
tapply:对向量子集进行操作。根据因子列表,每个水平下的元素个数来对向量进行划分(比如有三个水平,每个水平有4个数,就是将向量分成3组,每组4个数),对每组运行函数。 tapply(向量,因子/因子列表,函数/函数名) 因子的创建可通过函数:因子名 <- gl(因子包含的水平数,每个水平下有多少个元素)查看全部
-
mapply:lapply的多远版本 mapply(函数/函数名,数据,函数相关的参数) #相当于多次运行这个函数 list(rep(1,4),rep(2,3),rep(3,2),rep(4,1))可简化为mapply(rep,1:4,4:1) 函数: 函数名 <- function(参数列表){ 函数体 } ------------------------------ #lapply的多元版本 #mapply(参数) #mapply(函数/函数名,数据, 函数相关的参数) a<-list(rep(1,4), rep(2,3), rep(3,2),rep(4,1)) b<-mapply(rep,1:4,4:1) #等价于上面的list,rep是函数,1:4表示数据来源于这几个数,最后一个4:1表示要重复多少次 s <- function(n, mean ,std){ rnorm(n, mean, std) } #n表示从正态分布中取数的个数,mean表示均值,std表示标准差 s(4,0,1) #从s中抽取4个均值为0,标准差为1的数值 #调用函数s,生成1到5四个元素,其中均值是5到1,标准差是2 mapply(s, 1:5,5:1,2) 第二个表示个数,第三个表示均值,第四个表示标准差 list(s(1,5,2),s(2,4,2),s(3,3,2),s(4,2,2),s(5,1,2)) #这个list的效果跟mapply函数一样 得到的结果就是第一个为均值为5,标准差为2,的一个数值; 第二个就是均值为4,标准差为2,的2个数值 以此类推查看全部
-
mapply查看全部
-
沿着数组的某一维度处理数据查看全部
-
apply:沿着数组的某一维度处理数据。 apply(数组,维度,函数/函数名),维度是选择哪个维度,可以是c() x为矩阵 行求和:rowSums(x) 行求平均:rowMeans(x) 列求和:colSums(x) 列求平均:colMeans(x) sum是求和 rnorm(num):随机从正态分布中取num个数据 quantile:求数据的百分位点,可通过probs=c()进行分配 apply(x,1,mean) //1表示维度,1是行,mean表示求平均值 apply(x,2,sum) //2表示列,sum求和 rowSums(x)//对行求和 colSums(x)//对列求和 #apply #沿着数组的某一维度处理数据 #将函数用于矩阵的行或者列 #一句话就可以完成for/while函数 #apply(数组,维度,函数/函数名) x <- matrix(1:16,4,4) apply(x, 2, mean)#求列的平均 apply(x, 2, sum)#求列和 apply(x, 1, mean)#求行的平均 apply(x, 1, sum)#求行和 x <- matrix(rnorm(100),10,10) apply(x, 1, quantile, probs = c(0.25, 0.75)) #quantile 求数据的百分位点 probs = c(0.25, 0.75)表示取25%、75%位点 x <- array(rnorm(2*3*4),c(2,3,4)) apply(x,c(1,2), mean) #c(1,2)表示1和2压着3平面的维度 apply(x,c(1,3), mean) #同理 apply(x,c(2,3), mean) #同理查看全部
举报
0/150
提交
取消