R語言中的五種常用統(tǒng)計(jì)分析方法
1、分組分析aggregation
根據(jù)分組字段,將分析對(duì)象劃分為不同的部分,以進(jìn)行對(duì)比分析各組之間差異性的一種分析方法。
常用統(tǒng)計(jì)指標(biāo):
計(jì)數(shù) length
求和 sum
平均值 mean
標(biāo)準(zhǔn)差 var
方差 sd
分組統(tǒng)計(jì)函數(shù)
aggregate(分組表達(dá)式,data=需要分組的數(shù)據(jù)框,function=統(tǒng)計(jì)函數(shù))
參數(shù)說明
formula:分組表達(dá)式,格式:統(tǒng)計(jì)列~分組列1+分組列2+...
data=需要分組的數(shù)據(jù)框
function:統(tǒng)計(jì)函數(shù)
aggregate(name ~ class, data=data, FUN=length); #求和 aggregate(score ~ class, data=data, FUN=sum); #均值 aggregate(score ~ class, data=data, FUN=mean); #方差 aggregate(score ~ class, data=data, FUN=var); #標(biāo)準(zhǔn)差 aggregate(score ~ class, data=data, FUN=sd)
2、分布分析cut
根據(jù)分析目的,將數(shù)據(jù)(定量數(shù)據(jù))進(jìn)行等距或者不等距的分組,進(jìn)行研究各組分布規(guī)律的一種分析方法。
分組函數(shù)
cut(data,breaks,labels,right)
參數(shù)說明
data=需要分組的一列數(shù)據(jù)
breaks=分組條件,如果是一個(gè)數(shù)字,那么將平均分組;如果是一個(gè)數(shù)組,那么將按照指定范圍分組
labels:分組標(biāo)簽
right:指定范圍是否右閉合,默認(rèn)為右閉合,right參數(shù)為TRUE
用戶明細(xì) <- read.csv('data.csv', stringsAsFactors=FALSE) head(用戶明細(xì)) breaks <- c(min(用戶明細(xì)$年齡)-1, 20, 30, 40, max(用戶明細(xì)$年齡)+1) 年齡分組 <- cut(用戶明細(xì)$年齡, breaks = breaks) 用戶明細(xì)[, '年齡分組1'] <- 年齡分組 年齡分組 <- cut(用戶明細(xì)$年齡, breaks = breaks, right = FALSE) 用戶明細(xì)[, '年齡分組2'] <- 年齡分組 labels <- c('20歲以及以下', '21歲到30歲', '31歲到40歲', '41歲以上'); 年齡分組 <- cut(用戶明細(xì)$年齡, breaks = breaks, labels = labels) 用戶明細(xì)[, '年齡分組'] <- 年齡分組 head(用戶明細(xì)) aggregate(formula=用戶ID ~ 年齡分組, data=用戶明細(xì), FUN=length)
3、交叉分析tapply(相當(dāng)于excel里的數(shù)據(jù)透視表)
通常用于分析兩個(gè)或兩個(gè)以上,分組變量之間的關(guān)系,以交叉表形式進(jìn)行變量間關(guān)系的對(duì)比分析;
交叉分析的原理就是從數(shù)據(jù)的不同維度,綜合進(jìn)行分組細(xì)分,以進(jìn)一步了解數(shù)據(jù)的構(gòu)成、分布特征。
交叉分析函數(shù):
tapply(統(tǒng)計(jì)向量,list(數(shù)據(jù)透視表中的行,數(shù)據(jù)透視變中的列),FUN=統(tǒng)計(jì)函數(shù))
返回值說明:
一個(gè)table類型的統(tǒng)計(jì)量
breaks <- c(min(用戶明細(xì)$年齡)-1, 20, 30, 40, max(用戶明細(xì)$年齡)+1)
labels <- c('20歲以及以下', '21歲到30歲', '31歲到40歲', '41歲以上'); 年齡分組 <- cut(用戶明細(xì)$年齡, breaks = breaks, labels = labels) 用戶明細(xì)[, '年齡分組'] <- 年齡分組 head(用戶明細(xì)) tapply(用戶明細(xì)$用戶ID, list(用戶明細(xì)$年齡分組, 用戶明細(xì)$性別), FUN=length)
4、結(jié)構(gòu)分析prop.table
是在分組的基礎(chǔ)上,計(jì)算各組成部分所占的比重,進(jìn)而分析總體內(nèi)部特征的一種分析方法。
for example:資產(chǎn)占有率就是一個(gè)非常經(jīng)典的運(yùn)用
統(tǒng)計(jì)占比函數(shù)
prop.table(table,margin=NULL)
參數(shù)說明:
table,使用tapply函數(shù)統(tǒng)計(jì)得到的分組計(jì)數(shù)或求和結(jié)果
margin,占比統(tǒng)計(jì)方式,具體參數(shù)如下:
屬性 注釋
1 按行統(tǒng)計(jì)占比
2 按列統(tǒng)計(jì)占比
NULL 按整體統(tǒng)計(jì)占比
data <- read.csv('data.csv', stringsAsFactors=FALSE);
head(data) t <- tapply(data$月消費(fèi).元., list(data$通信品牌), sum) t prop.table(t); t <- tapply(data$月消費(fèi).元., list(data$通信品牌), mean) t prop.table(t); t <- tapply(data$月消費(fèi).元., list(data$省份, data$通信品牌), sum) t prop.table(t, margin = 2)
5、相關(guān)分析prop.table
是研究現(xiàn)象之間是否存在某種依存關(guān)系,并對(duì)具體有依存關(guān)系的現(xiàn)象探討其相關(guān)方向以及相關(guān)程度,是研究隨機(jī)變量之間的相關(guān)關(guān)系的一種統(tǒng)計(jì)方法。
相關(guān)系數(shù)r 可以用來描述定量變量之間的關(guān)系
相關(guān)分析函數(shù):
cor(向量1,向量2,...)返回值:table類型的統(tǒng)計(jì)量
data <- read.csv('data.csv', fileEncoding = "UTF-8"); cor(data[, 2:7])
補(bǔ)充:R中基本統(tǒng)計(jì)分析方法整理
面對(duì)一大堆的數(shù)據(jù),往往會(huì)讓人眼花繚亂。但是只要使用一些簡(jiǎn)單圖形和運(yùn)算,就可以了解數(shù)據(jù)更多的特征。R提供了很多關(guān)于數(shù)據(jù)描述的函數(shù),通過這些函數(shù)可以對(duì)數(shù)據(jù)進(jìn)行一個(gè)簡(jiǎn)單地初步分析。
獲取描述性統(tǒng)計(jì)量的R函數(shù)
(1)常用統(tǒng)計(jì)函數(shù)(參數(shù)x為向量)
mean(x):平均值
median(x):中位數(shù)
sd(x):標(biāo)準(zhǔn)差
var(x):方差
sum(x):求和
min(x):最小值
max(x):最大值
range(x):值域
......等等
(2)summary()函數(shù)
提供最小值、下四分位數(shù)、中位數(shù)、平均值、上四分位數(shù)、最大值。
(3)apply()或sapply函數(shù)
計(jì)算參數(shù)指定的任意描述性統(tǒng)計(jì)量。
其中sapply()用法:sapply(x,F(xiàn)UNC,options) ,x是待處理的數(shù)據(jù)框,F(xiàn)UNC是用戶指定的函數(shù),如sum()、max()、mean()等等,指定了的options會(huì)傳遞給FUNC。
(4) Hmisc包中的describe()函數(shù)
返回變量和觀測(cè)值的數(shù)目、缺失值和唯一值的數(shù)目、平均值、分位數(shù)、五個(gè)最大的值和五個(gè)最小的值。
(5)pastecs包中的stat.desc()函數(shù)
可以計(jì)算種類繁多的描述性統(tǒng)計(jì)量
(6)psych包也提供了一個(gè)describe()函數(shù)
它可以計(jì)算非缺失值的數(shù)量、平均數(shù)、標(biāo)準(zhǔn)差、中位數(shù)、截尾均值、絕對(duì)中位差、最小值、最大值、值域、偏度、峰度等。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
R語言中dnorm,pnorm,qnorm和rnorm的區(qū)別淺析
正在學(xué)習(xí)R語言統(tǒng)計(jì)學(xué)的小伙伴,可能會(huì)被各種專有名詞所困擾,下面這篇文章主要給大家介紹了關(guān)于R語言中dnorm,pnorm,qnorm和rnorm區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-12-12聊聊R語言中Legend 函數(shù)的參數(shù)用法
這篇文章主要介紹了聊聊R語言中Legend 函數(shù)的參數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03R語言 解決安裝ggplot2報(bào)錯(cuò)的問題
這篇文章主要介紹了R語言 解決安裝ggplot2報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04R語言基本對(duì)象類型知識(shí)點(diǎn)詳解
在本篇文章里小編給大家整理了一篇關(guān)于R語言基本對(duì)象類型知識(shí)點(diǎn)詳解內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2021-03-03利用R語言合并數(shù)據(jù)框的行與列實(shí)例代碼
實(shí)際操作中我們經(jīng)常需要引入其他表中的列,即將其他表中列加入到表中,需要把兩個(gè)或者更多的表合并成一個(gè),下面這篇文章主要給大家介紹了關(guān)于利用R語言合并數(shù)據(jù)框的行與列的相關(guān)資料,需要的朋友可以參考下2022-07-07