r语言summary函数使用_R语言--操纵数据--重要函数的使用
1. lapplyeg:x=list(a=1:10,b=c(11,21,31,41,51))
lapply(x,mean) 或 sapply(x,mean)
lapply與sapply均為返回x中元素的平均值,sapply函數可將lapply的返回結果進行化簡x=1:4
lapply(x,runif) runif意為從一個均勻分布里抽取若干個數出來,默認是從0到1 的均勻分布
lapply(x,runif,min=0,max=100) 從0到100的均勻分布里抽取若干個數出來x=list(a=matrix(1:6,2,3),b=matrix(4:7,2,2))
lapply(x,function(m) m[1,]) 此處m代表傳入矩陣,函數運行的是矩陣的第一行
2.applyx=matrix(1:16,4,4)
apply(x,2,mean) 返回x中第二列的平均
apply(x,2,sum) 返回x中第二列的和
rowSums(x) 對每一行求和
rowMeans(x) 對每一行求平均
colSums(x) 對每一列求和
colMeans(x) 對每一列求平均x=matrix(rnorm(100),10,10) 從正態分布中隨機取100個數據,并將其排成10行10列
apply(x,1,quantile,probs=c(0.25,0.75)) quantile意為求數據的百分位點 probs對quantile進行限定,以語句可返回矩陣x中每一行的25%和75%分位點的數據x=array(rnorm(2*3*4),c(2,3,4))
apply(x,c(1,2),mean)
3.mapplylist(rep(1,4),rep(2,3),rep(3,2),rep(4,1)) 第一個元素為4個1,第二個元素為3個2.........
mapply(rep,1:4,4:1) 1:4為rep函數的第一個參數,4:1為第二個參數,與上面的語句含義相同,即將1重復4次,2重復3次,3重復2次,4重復1次。s=function(n,mean,std){rnorm(n,mean,std)}
s(4,0,1)
mapply(s,1:5,5:1,2)
n代表從分布中抽取的數據的個數
mean和std分別代表隨機分布的總體的均值和標準差
rnorm(n,mean,std 代表是從均值為mean方差為std的正態分布中抽取n個數據
s(4,0,1) 代表是從均值為0方差為1的正態分布中抽取4個數據
mapply(s,1:5,5:1,2) 應用s函數,返回的結果是一個列表
第一個元素是從均值為5,方差為2的正態分布中抽取的1個數據
第一個元素是從均值為4,方差為2的正態分布中抽取的2個數據
第一個元素是從均值為3,方差為2的正態分布中抽取的3個數據...........(一一對應)
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)) 返回的結果是一樣的,可以看出使用mapply能讓語句更簡單
4.tapplyx=c(rnorm(5),runif(5),rnorm(5,1)) x包含15個元素,前五個元素來自于正態分布,中間五個元素來自于均勻分布,最后五個元素來自于均值為1,標準差為0的正態分布
f=gl(3,5) 建立因子需要gl函數,第一個參數表示該因子有3個水平,第二個參數表示每個水平下有5個元素
tapply(x,f,mean) 對x這個向量按照g的水平進行分組,并對每組求均值
tapply(x,f,mean,simplify=FALSE) 得到的是一個未經化簡的列表
5.splitx=c(rnorm(5),runif(5),rnorm(5,1))
f=gl(3,5)
split(x,f) 返回水平1對應的x中的前五個元素,水平2對應的中間五個元素,水平3對應的最后五個元素
lapply(split(x,f),mean) 返回分組后每一水平對應的5個元素的平均值 s=split(airquality,airquality$Month) 返回airquality中關于每一月份的數據table(airquality$Month) 查詢每一月份包含的數目head(airquality)
lapply(s, function(x) colMeans(x[,c("Ozone","Wind","Temp")]))
對s應用function(x),求得關于每個月ozone、wind、temp的均值,colMeans求列均值
sapply(s, function(x) colMeans(x[,c("Ozone","Wind","Temp")])) sapply可將結果簡化
sapply(s, function(x) colMeans(x[,c("Ozone","Wind","Temp")],na.rm = TRUE))
有了na.rm則可將ozone、wind、temp中的缺失值去除掉,然后計算列均值
6.排序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) 可對x中的v2列進行升序排列
sort(x$v2,decreasing = TRUE) 可對x中的v2列進行降序排列
order(x$v2) 可對x中的v2列進行升序排列,但返回的不是內容本身,而是其所在的行號
x[order(x$v2),] 按照v2列升序的行號的排列對整個數據框進行排列
x[order(x$v4,x$v2),] 先按照v4進行升序排列,之后再按照v2進行升序排列
x[order(x$v4,x$v2,decreasing = TRUE),] 先按照v4進行降序排列,再按照v2進行降序排列
7.總結數據信息head(airquality,10) 查看airquality的前十行,默認是前六行
tail(airquality,8) 查看airquality的后八行,默認是后六行
summary(airquality) 查看airquality每一列的最小值、第一個分位點、中間值、均值、第三個分位點、最大值以及缺失值的個數
str(airquality) 查看airquality的基本情況如變量數等table(airquality$Ozone) 查看airquality中的Ozone的具體數值,及每一數值出現的次數,不包括缺失值
table(airquality$Ozone,useNA='ifany') 還可以總結缺失值的個數
table(airquality$Month,airquality$Day) 返回的是二維數據,即查詢某月某日的數據的個數any(is.na(airquality$Ozone)) 判斷是否有缺失值
sum(is.na(airquality$Ozone)) 計算缺失值的總數
all(airquality$Month<12) 判斷月份是不是都小于12xtabs(Freq~Class+Age,data=Titanic) xtabs可建立一個組合框,以class和age來計算頻數
x=xtabs(Freq~Class+Age,data=Titanic)
ftable(x) 可將結果以更加扁平化的形式顯示出來,內容與xtabs函數返回的結果一致
object.size(airquality) 查看airquality的大小(字節)
8總結
總結
以上是生活随笔為你收集整理的r语言summary函数使用_R语言--操纵数据--重要函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 停更公告
- 下一篇: java虚拟机现状_深入理解java虚拟