-
内容总结查看全部
-
dim是检验维度xtabs (Freq~Class)+Ages,data=Titanic)这是交叉列表 ftable()和上面差不多,但是表格比较扁平化查看全部
-
#默认前六行或者后六行 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查看全部
-
#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可以用gl()把出()做成一个列表 f<-split(airquality,airquality$Month) lapply(f,function(x) colMeans(x[,c("Wind","Temp")])) sapply可处理缺失值用参数na,rm=TRUE查看全部
-
apply:对向量子集进行操作。根据因子列表,每个水平下的元素个数来对向量进行划分(比如有三个水平,每个水平有4个数,就是将向量分成3组,每组4个数),对每组运行函数。 tapply(向量,因子/因子列表,函数/函数名)默认简化simlyfy=TRUE 因子的创建可通过函数:因子名 <- 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个数值查看全部
-
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) #同理查看全部
-
比apply按维度来求和平均更有效率的函数查看全部
-
总结sapply和lapply查看全部
-
str()可以检验是否是函数。 runif均匀分布 x<-1:4 lapply(x,runif)当x传进来不是列表的时候,lapply会强制转换成列表 lapply(x,runif,max=100,min=0)后面最大最小是作用于runif查看全部
-
rep(2,4)把第一个重复4次查看全部
-
is.na是检验缺失值的,在[!]当中表示取反输出ttrue,compete函数是去判断对应向量都是是缺失值会显示TURE,之后应{}就可以输出了查看全部
-
r中有不完全匹配方法,可以在函数中关闭精确匹配查看全部
举报
0/150
提交
取消