日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

R语言学习笔记

發(fā)布時(shí)間:2023/12/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言学习笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目的通過(guò)數(shù)據(jù)分析信息。
數(shù)據(jù)挖掘
數(shù)據(jù)分析過(guò)程越準(zhǔn)確,決策過(guò)程就越正確。
六步驟
1.數(shù)據(jù)采集2.數(shù)據(jù)存儲(chǔ)3.數(shù)據(jù)分析4.數(shù)據(jù)挖掘5.數(shù)據(jù)可視化化6.進(jìn)行決策
1.數(shù)據(jù)采集
采集的數(shù)據(jù)稱(chēng)為源數(shù)據(jù)
手工記錄,網(wǎng)絡(luò)爬蟲(chóng)。
2.數(shù)據(jù)存儲(chǔ)
將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)中
將數(shù)據(jù)收集到計(jì)算機(jī)中。
如將數(shù)據(jù)存儲(chǔ)在excel,過(guò)多使用數(shù)據(jù)庫(kù)
3.數(shù)據(jù)統(tǒng)計(jì)
有的是不是線(xiàn)性的。、
合適的統(tǒng)計(jì)方法等
4.用數(shù)據(jù)挖掘 DataMining
又稱(chēng)為資料勘探丶數(shù)據(jù)采礦。
計(jì)算科學(xué)有關(guān),諸多方法。
同樣的數(shù)據(jù)不同的人得到不同的結(jié)果。
(挖掘機(jī)技術(shù)哪家強(qiáng)還是山東找藍(lán)翔)
5.數(shù)據(jù)可視化
維度在地圖上顯示
6.用統(tǒng)計(jì)結(jié)果進(jìn)行決策。
數(shù)據(jù)與三個(gè)重大思維轉(zhuǎn)變
1、、。要分析與某事物相關(guān)的所有數(shù)據(jù),而不是依靠分析少量的數(shù)據(jù)樣本;
2.我們熱于接受數(shù)據(jù)的紛繁復(fù)雜,而不再追求精確性。
3.不在探求難以捉摸的因果關(guān)系而轉(zhuǎn)而相關(guān)性。
尿布和啤酒。故意將需要東西放的很遠(yuǎn)。
路遙知馬力,日久見(jiàn)人心。
微信朋友圈與人性格分析
一目了然數(shù)據(jù)可視化
R語(yǔ)言
為什么要學(xué)習(xí)R語(yǔ)言。
R語(yǔ)言免費(fèi)。與S語(yǔ)言類(lèi)似?;赟語(yǔ)言最開(kāi)始做生物統(tǒng)計(jì)《bioconductor》包;
具有強(qiáng)大繪圖工具。
R的缺點(diǎn)。
1.R軟件不夠規(guī)范,不容易上手,需要付出較多的努力,付出大量的學(xué)習(xí)成本。
擴(kuò)展包太多了,成本高。擴(kuò)展包學(xué)習(xí)比R學(xué)習(xí)還比較困難
數(shù)據(jù)存儲(chǔ)

Getwd()獲得工作目錄路徑默認(rèn)"C:/Users/LENOVO/Documents"默認(rèn)生成文件放這里
Setwd()設(shè)置工作目錄setwd(dir = “C:/Users/LENOVO/Desktop/R”);注意Windows上使用的是\而R中使用的是/如果要用\則需要使用轉(zhuǎn)義字符.經(jīng)常與R數(shù)據(jù)在同一目錄下
這樣的工作目錄就修改好了

list.files()可以查看目錄下的軟件

如果使用當(dāng)前系統(tǒng)命令查看則需要退出R才能查看

Dir()命令也可以完成同樣的工作

變量無(wú)需進(jìn)行申明變量名不能以數(shù)字開(kāi)頭
<-賦值符號(hào)
X<-3
X=3也可以但是在假設(shè)檢驗(yàn)中,會(huì)出現(xiàn)=沖突
5->x向右賦值
X<<-5強(qiáng)制賦值給全局變量
Sum(1,2,3,4,5)
Mean(1,2,3,4,5)
X其實(shí)是運(yùn)用print函數(shù)
ls.str()是str和ls()共同結(jié)合
str(x)可以看值
ls.str()就可以看共同信息
ls(all.names = TRUE)
all.names查看隱藏選項(xiàng)TRUE大寫(xiě)注意
rm(x)移除某個(gè)對(duì)象
不可恢復(fù)
R中提供list參數(shù)
List=ls())
用rm(list=ls())就可以刪除全部對(duì)象
Home end可以快速移動(dòng)光標(biāo)
快捷鍵ctrl+L

History函數(shù)可以查看歷史記錄 History(); ls(); getwd() setwd(dir = "C:/Users/LENOVO/Desktop/R") getwd() list.files() dir() 1+2 x<-3 x x=3 x 5->x x<-sum(1,2,3,4,5) x ls() ls.str() str(x) ls(all.names = TRUE) rm(x) rm(list=ls()) history() /

Save.image()可以保存工作空間
可以保存數(shù)據(jù)圖形函數(shù)而不是函數(shù)
q()退出系統(tǒng)函數(shù);
ctrl+enter快速執(zhí)行
R有5000個(gè)包
R包的學(xué)習(xí)比R本身還復(fù)雜
安裝包
install.packages(“vcd”)
.libPaths()看庫(kù)的路徑
library()可以顯示庫(kù)里面有哪些包
install.packages(c(“”,””,””))

要使用函數(shù)可以使用library()已經(jīng)安裝好了不需要再安裝包了 也可以使用require()加載包使用包 help(package=””) data(package=””)可以查看包中擁有的數(shù)據(jù)集 detach(package:)刪除包 remove.package(“”)徹底刪除包

installed.packages()可以查看當(dāng)前擁有包
Rcade<-installed.packages()[,1]第一列函數(shù)名稱(chēng)

save(Rcade,file=”Rcade.rdata”) for(i in Rcade)install.packages(i) help(sum)也可以直接使用?包查看 args(plot) 直接查看函數(shù)的參數(shù) example(函數(shù)) 可以直接查看函數(shù)的示例 demo()看圖的好像 vignette("")可以查看文檔,但不是每個(gè)包都有這種文檔

??qplot

help.search(“”)模糊搜索 apropos("sum",mod="function")查找 RSitesearch("")訪(fǎng)問(wèn)官網(wǎng)搜索

內(nèi)置數(shù)據(jù)集
就是一些數(shù)據(jù)給你用來(lái)練習(xí)
在安裝時(shí)默認(rèn)安裝的包datasets中
help(package=“datasets”)
data()不加任何參數(shù)列出很多數(shù)據(jù)集

help(package="datasets") data() rivers rivers<-c(1,2,3) `` 將數(shù)據(jù)集river置換掉 要從新使用river data("rivers")從新加載 names(euro)看屬性 state<-data.frame(state.area,state.abb) state 數(shù)據(jù)框,一列一列的組合 heatmap(volcano) 直接使用內(nèi)置矩陣?yán)L制熱圖 data(package="MASS")可以看包中的數(shù)據(jù)集 注意咯這里DATA可能是函數(shù)重載。 data(package=.packages(all.available = TRUE))查看R中所有可用數(shù)據(jù)集 其中的數(shù)據(jù)集可以直接使用data(“”)函數(shù)進(jìn)行加載只加載數(shù)據(jù)集而不是整個(gè)R包i data(Aids2,package="MASS") Aids2 加載包中的數(shù)據(jù)集 兩個(gè)加載有所不同,一個(gè)可用,一個(gè)需要加載包后才可用。```csharp x<-1:10 rm(list=ls()) x+1 x-3 x<-x+1 x y<-seq(1,100,length.out=10) y x+y x*y x y x**y x%%y y%/%x z<-c(1,2,3) x+z x>y c(1,2,3)%in%c(1,2,2,4,5,6) x==y x<--5:5 x abs(x) sqrt(x) sqrt(25) log(16,base=2) log(16) log10(16) exp(x) ceiling(c(-2.3,3.1415)) floor(c(-2.3,3.1415)) trunc(c(-2.3,3.1415)) round(c(-2.3,3.1415),digits = 2) signif(c(-2.3,3.1415),digits = 2) sin(x) cos(x) range(c(1:100)) var(c(1:100)) prod(c(1:100)) median(c(1:100)) quantile(c(1:100),c(0.4,0.6,0.8)) which.max(c(1:100)) which(c(1:100)==5) which(c(1:100)>5)

矩陣
matrix

?array dim1<-c("A1","A2") dim2<-c("B1","B2","B3") dim3<-c("C1","C2","C3","C4") x<-array(1:24,c(2,3,4),dimnames = list(dim1,dim2,dim3)) xTitanic m<-matrix(1:20,4,5,byrow=T) m m[1,2] m[1,c(2,3,4)] m[c(2:4),c(2,3)] m[2,] m[2] m[-1,2] dimnames(m)<-list(cnames,rnames) m rnames<-c("C1","C2","C3","C4","C5") cnames<-c("R1","R2","R3","R4") m["R1","C2"] head(state.x77) state.x77[,"Income"] m+1 m+m n<-matrix(1:20,5,4) m+n t<-m[1,] t sum(t) colSums(m) rowSums(m) colMeans(m) rowMeans(m) n*t n<-matrix(1:9,3,3) t<-matrix(2:10,3,3) n%*%t diag(n) t(m) m

列表

rm(list = ls()) state.center a<-1:20 b<-matrix(1:20,4) c<-mtcars d<-"This is a test list" a;b;c;d h<-c(1:20) mlist<-list(a,b,c,d) mlist mlist<-list(first=a,second=b,third=c,fourth=d) mlist[1] mlist[c(1,4)] state.center[c("x",'y')] mlist$first state.center$x mlist[[1]] class(mlist[[1]]) mlist[[5]]<-iris mlist mlist<-mlist[-5] mlist mlist[5]<-NULL

數(shù)據(jù)框

rm(list = ls()) state.center a<-1:20 b<-matrix(1:20,4) c<-mtcars d<-"This is a test list" a;b;c;d h<-c(1:20) mlist<-list(a,b,c,d) mlist mlist<-list(first=a,second=b,third=c,fourth=d) mlist[1] mlist[c(1,4)] state.center[c("x",'y')] mlist$first state.center$x mlist[[1]] class(mlist[[1]]) mlist[[5]]<-iris mlist mlist<-mlist[-5] mlist mlist[5]<-NULL state<-data.frame(state.name,state.abb,state.region,state.x77) state attach(state) state.name detach(state) with(state,{sum(state.name))

因子
變量的分類(lèi)
1丶名義型變量
沒(méi)有關(guān)系
2丶有序型變量
抽象型
3丶連續(xù)型變量
百分率 人口數(shù)
R中名義型變量和有序性變量稱(chēng)為因子factor這些分類(lèi)變量的可能值稱(chēng)為一個(gè)水平level
這些水平值構(gòu)成的向量稱(chēng)為因子

rm(list=ls()) table(mtcars$cyl) f<-factor(c("red","red","green","blue","green","blue","blue")) f fcy1<-factor(mtcars$cyl) plot(fcy1) plot(mtcars$cyl) num<-1:100 cut(num,c(seq(0,100,10))) state.division class(state.region) f<-factor(c("red","red","green"),ordered = T,levels = c("red","green")) f

缺失數(shù)據(jù)
完全隨機(jī)缺失,數(shù)據(jù)缺失于已觀測(cè)值和未觀測(cè)值都不相關(guān),則數(shù)據(jù)為完全隨機(jī)缺失(MCAR)如果變量都是MCAR,那么可以將數(shù)據(jù)完整的實(shí)例看做是對(duì)更大數(shù)據(jù)集的一個(gè)簡(jiǎn)單隨機(jī)抽樣
隨機(jī)缺失
與其他觀測(cè)變量相關(guān),如你觀測(cè)體重較小的動(dòng)物可能又做夢(mèng)時(shí)長(zhǎng)的缺失值(可能因?yàn)檩^小的動(dòng)物較難觀察),“缺失”與做夢(mèng)時(shí)長(zhǎng)無(wú)關(guān)可以認(rèn)為MAR
非隨機(jī)缺失,做夢(mèng)時(shí)長(zhǎng)越短的動(dòng)物更有可能又做夢(mèng)數(shù)據(jù)的缺失,可能由于難以測(cè)量較短的事件NMAR
NA代表缺失值,notavailable的簡(jiǎn)稱(chēng),用來(lái)存儲(chǔ)缺失信息
NA不是0

rm(list = ls())1+NA NA==0 a<-c(NA,1:50) sum(a,na.rm = TRUE) is.na(a) install.packages(VIM) library(vIM) colSums(sleep) rowSums(sleep) ?na.omit d<-na.omit(a) d na.omit(sleep) 刪除行,如果超過(guò)一半會(huì)趙成影響有專(zhuān)門(mén)的包研究缺失值

NA是存在的值,但是不知道是多少
NAN是不存在的
Inf存在,是無(wú)窮大表示不可能的值
字符串

rm(list=ls()) nchar("hello,world") month.name nchar(month.name) length(month.name) nchar(c(12,2,3)) paste("everybody","love","stats") paste("everybody","love","stats",sep="-") names<-c("Moe","Larry","Curly") paste(names,"loves state") temp<-substr(x=month.name,start = 1,stop=3) toupper(temp) tolower(temp) gsub(正則表達(dá)式1,正則表達(dá)式2,perl=T) x<-c("b","A+","AC") grep(,,fixed = T) match("AC",x) %in%path<-"/user/local/bin/R" strsplit(path,"/") face<-1:13 suit<-c("spades","clubs","hearts","diamonds") outer(face,suit,FUN=paste)

日期和時(shí)間
1丶對(duì)時(shí)間序列的描述
2丶利用前面的結(jié)果進(jìn)行預(yù)測(cè)

rm(list = ls()) sunspots class(presidents) a<-"2017-01-01" as.Date(a) class(a) as.Date(a,format="%Y-%m-%d") class(as.Date(a,format="%Y-%m-%d")) ?strftime seq(as.Date("2017-01-01"),as.Date("2017-07-05"),by=5) sales<-round(runif(48,min=50,max=100)) sales ts(sales,start = c(2010,5),end=c(2014,4),frequency=1) ts(sales,start = c(2010,5),end=c(2014,4),frequency=4) ts(sales,start = c(2010,5),end=c(2014,4),frequency=12)

獲取數(shù)據(jù)
1丶利用鍵盤(pán)來(lái)輸入數(shù)據(jù)
2丶通過(guò)讀取存儲(chǔ)在外部文件上的數(shù)據(jù)
3丶通過(guò)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)系統(tǒng)來(lái)獲取數(shù)據(jù)
?edit
patienID<-c(1,2,3,4)
data2<-data.frame(patienID=character(0),b=character(0),c=numeric())
data2<-edit(data2)
fix(data2)
install.packages(“RODBC”)
讀入文件
read.table(“input.csv”)
setwd()
x<-read.table(“input.csv”)
head(x)
head(x,n=10)
tail(x)
x<-read.table("",sep=",")
head是否將第一行設(shè)置為名稱(chēng)
skip=5可以從第六行讀取數(shù)據(jù)
nrows=100讀取前面100行
na.string替換缺失值
stringasfactor=false 是否將這個(gè)轉(zhuǎn)化為因子類(lèi)型
read.csv 默認(rèn)sep=,
read.csv2 默認(rèn)為;
可以用絕對(duì)路徑讀取互聯(lián)網(wǎng)上的文件
library(XML)
?readHTMLTable
help(package=“foreign’)
x<-read.table(“clipboard”,header=T,sep=”\t")
readclipboard()
read.table(gzfile(“input.txt.gz”))
readLines(“input.csv”,n=5)
scan(“scan.txt”,what=list(character(3),numeric(2,numeric(2))))
懶得加注釋了!
寫(xiě)入文件

?write ?write.table ?write.csv getwd() write.table(x,file=newfile.txt) write.table(x,file=newfile.csv,sep="\t") write.table(x,file=newfile.csv,sep="\t",quote = False,append=FALSE,na="NA") write.table(x,file=gzfile (newfile.csv.gz),sep="\t",quote=FALSE,append = FALSE,na="NA") library(foreign) write.arff() write.table(x,file="c:/Users/wangtong/Desktop/newfile.csv",sep=",",row.names = FALSE) #quto表示讀入時(shí)候不需要加“”append參數(shù)表示是否追加寫(xiě)入,否則是覆蓋 讀寫(xiě)Excel文件 ```go read.csv("input.csv",header = T) read.csv("clipboard",header = T,sep="\t") library(XLConnect) ex<-loadworkbook("data.xlsx") readWorksheet(ex,1,startRow=0,startCol=0,endrow=50,endcol=3,hearder=T) readworksheetfromfile("data.xlsx",sheet=1) wb<-loadWorkbook("file.xlsx",create=T) createsheet(wb,"sheet1") writeWorkbook(wb,data=mtcars,sheet="sheet1") saveworkbook(wb) writeworkbooktofile("file1.xlsx",data=iris,sheet="sheet1") library(xlsx) help() x<-read.xlsx("data.xlsx",1,startrow=1,endrow=100) write.xlsx(x,file="rdata.xlsx",sheetname="sheet1",append=F)

讀寫(xiě)R格式文件

.rds保存單個(gè)文件對(duì)象 .rdata保存多個(gè)文件對(duì)象 iris head(iris) saveRDS(iris,file="iris.RDS") getwd() readRDS("iris.RDS") load("ch03.R") save(iris,iris3,file="") save.image()

數(shù)據(jù)轉(zhuǎn)換
轉(zhuǎn)換數(shù)據(jù)

library(xlsx) cars32<-read.xlsx("mtcars.xlsx",sheetIndex=1,head=T) is.data.frame(cars32) is.vactor() is.na() is.factor() is.data.frame(state.x77) dstate.x77<-as.data.frame(state.x77) is.data.frame(dstate.x77) as.matrix(data.frame(state.region,state.x77)) methods(is) x<-state.abb dim(x)<-c(5,10) x x<-state.abb x<-as.factor(state.abb) x as.list(x) state<-data.frame(x,state.region,state.x77) state$Income y<-state["Nevada",] unname(y) unlist(y)

截取所需行

who<-read.csv("who.csv",header=T) who1<who[c(1:50),c(1:10)] who4<-who[which(who$CountryID>50&who$CountryID<=100)] ?subset ?sample who4<-subset(who,who$CountryID>5&who$CountryID<=100) who4

合并所需行與去除重復(fù)行

sample(who$CountryID,30,replace = F) who[sample(who$CountryID,30,replace = F),] mtcars[-1:-5,] mtcars[,-1:-5] mtcars$mpg<-NULL head(mtcars) data.frame(USArrests,state.division) ?cbind cbind(USArrests,state.division)#同樣效果同樣適用于矩陣類(lèi)型 data1<-head(USArrests,20) data2<-tail(USArrests,20) rbind(data1,data2)#不會(huì)取出重復(fù)項(xiàng) duplicated(data4)#判斷重復(fù)行 data4[duplicated(data4),] data4[!duplicated(data4)] length(rownames(data4[!duplicated(data4),])) unique(data4)#直接去除重復(fù)行 rm(list = ls()) sractm<-t[mtcars] ?rev#reveser翻轉(zhuǎn)用于向量 letters rev(letters) rownames(women) rev(rownames(women)) women[rev(rownames(women)),] women$height women$height*2.54 data.frame(women$height*2.54,women$weight) data.frame(height=women$height*2.54,weight=women$weight) transform(women,height=height*2.54)#任意修改任意列的值 transform(women,cm=height*2.54) ?sort sort(rivers) sort(state.name) rev(sort(rivers)) order(rivers)#返回排序完對(duì)應(yīng)值所在的索引 ?rank mtcars[order(mtcars$mpg,mtcars$disp),]#兩個(gè)條件 total<-cbind(WorldPhones,Total=rs) ?apply#apply函數(shù) apply[WorldPhones,MARGIN=1,FUN=sum] apply[WorldPhones,MARGIN=2,FUN=mean]#apply函數(shù),處理運(yùn)用于數(shù)據(jù)框或者矩陣 ?lapply lapply(state.center,FUN=length)#運(yùn)用于列表返回列表 sapply()#返回向量值 tapply#處理因子數(shù)據(jù)根據(jù)因子進(jìn)行分組每組分別處理第二個(gè)參數(shù)是INDEX因子類(lèi)型 state.name tapply(state.name,state.division,FUN=length)

去中心化 數(shù)據(jù)集中的各項(xiàng)數(shù)據(jù)減去數(shù)據(jù)集的均值
標(biāo)準(zhǔn)化 數(shù)據(jù)集中的各項(xiàng)數(shù)據(jù)減去數(shù)據(jù)集的均值除以標(biāo)準(zhǔn)差
添加刪選排序轉(zhuǎn)換

heatmap(state.x77) x<-c(1,2,3,6,3) mean(x) x-mean(x) sd(x) (x-mean(x))/sd(x) ?scale x<-scale(state.x77,center=T,scale=T)#去中心化和標(biāo)準(zhǔn)化 heatmap(x) 中心化的作用等比例縮小,是熱圖比較密切,

reshape2
reshape2包對(duì)數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換

x<-data.frame(k1=c(NA,NA,3,4,5),k2=c(1,NA,NA,4,5),data=1:5) y<-data.frame(k1=c(NA,2,NA,4,5),k2=c(NA,NA,3,4,5),data=1:5) merge(x,y,by="k1") merge(x,y,by="k2",incomparables = NA)#incomparables忽略什么選項(xiàng) merge(x,y,by=c("k1","k2")) install.packages("reshape2")#強(qiáng)大的整合數(shù)據(jù)的工具 library(reshape2) help(reshape2) install.packages("reshape2") library(reshape2) rm(list = ls()) ?melt#寬字符寬字符變?yōu)殚L(zhǎng)字符 melt(airquality) melt(airquality,id.vars=c("month","day")) aqw<-dcast(aql,month+day~variable) dcast(aql,month~variable,fun.aggregate=mean,na.rm=T) head() ?dcast#formula ?acast names(airquality)<-tolower(names(airquality)) head(airquality)

tidyr
dplyr
R函數(shù)

沒(méi)啥好說(shuō)的不同類(lèi)型使用不同函數(shù),統(tǒng)計(jì)函數(shù)很多在這里不介紹了 選項(xiàng)參數(shù) 1丶輸入控制部分; file:接一個(gè)文件 data:一般指要輸入一個(gè)數(shù)據(jù)框; x:表示單獨(dú)的一個(gè)對(duì)象,一般都是向量,也可以是矩陣或者列表; x和y:函數(shù)需要兩個(gè)輸入變量; x,y,z:函數(shù)需要三個(gè)輸入變量 formula:公式; na.rm:刪除缺失值; ...:表示參數(shù)可傳遞;別問(wèn)我問(wèn)就是省略或者是多個(gè)參數(shù)啥的吧 2丶輸出控制部分 3丶調(diào)節(jié)部分 color 選項(xiàng)和明顯用來(lái)控制顏色 select與選擇有關(guān) font 與字體有關(guān) font.axis 就是坐標(biāo)軸的字體 lty是linetype lwd是line width method 軟件算法 選項(xiàng)接受哪些參數(shù) main:字符串,不能是向量 na.rm:TRUE或者FALSE axis:side參數(shù)只能是14 fig:包含四個(gè)元素的向量

數(shù)學(xué)統(tǒng)計(jì)函數(shù)
這部分要復(fù)習(xí)概率統(tǒng)計(jì)學(xué)
d表示概率密度函數(shù)
p表示分布函數(shù)
q表示分布函數(shù)的反函數(shù)
r 參數(shù)相同分布的隨機(jī)數(shù)
dnormal正態(tài)概率密度函數(shù)
pnormal正態(tài)分布函數(shù)
qnormal正態(tài)分位數(shù)函數(shù)
rnormal正態(tài)分布的隨機(jī)數(shù)函數(shù)

rnorm(n=100,mean=15,sd=2) round(rnorm(n=100,mean = 15,sd=2))

binom二項(xiàng)分布
hyper超幾何分布
geom幾何分布
pois泊松分布

runif(1)#生成0-1之間的隨機(jī)數(shù) qqnorm(rnorm(n=100,mean=15,sd=2)) runif(50,min=1,max = 100) set.seed(666)#隨機(jī)種子將數(shù)據(jù)與種子綁定 runif(50) runif(50) set.seed(666) runif(50)

描述性統(tǒng)計(jì)函數(shù)

myvars<-mtcars[c("mpg","hp","wt","am")] myvars summary(myvars) fivenum(myvars$hp) install.packages("Hmisc") library(Hmisc) describe(myvars) library(pastecs) stat.desc(myvars) stat.desc(myvars,basic=T)#計(jì)算基礎(chǔ)值 stat.desc(myvars,desc=T)#計(jì)算描述值 中位數(shù),中位數(shù)置信區(qū)間 stat.desc(myvars,norml=T)#計(jì)算一些統(tǒng)計(jì)值偏度和風(fēng)度 library(psych) describe(mtcars[myvars],trim=0.1)#包括去掉頭尾的均值,表示前面百分之幾的數(shù) Hmisc::describe(mtcars) library(MASS) Cars93 head(Cars93) aggregate(Cars93[c("Min.Price","Price","Max.Price","MPG.city")],by=list(Manufacturer=Cars93$Manufacturer),mean) aggregate(Cars93[c("Min.Price","Price","Max.Price","MPG.city")],by=list(Manufacturer=Cars93$Manufacturer),sd) aggregate(Cars93[c("Min.Price","Price","Max.Price","MPG.city")],by=list(Manufacturer=Cars93$Manufacturer,Manufacturer=Cars93$Type),mean) library(doBy) ?summaryBy summaryBy(mpg+hp+wt~am,data=myvars,FUN=c(mean,sd)) describe.by(myvars,list(am=mtcars$am))

頻數(shù)統(tǒng)計(jì)函數(shù)

mtcars$cyl<-as.factor(mtcars$cyl) mtcars mtcars$cyl split(mtcars,mtcars$cyl) num<-1:100 cut(num,c(seq(0,100,10))) ?table table(mtcars$cyl) table(cut(num,c(seq(0,100,10)))) prop.table(table(mtcars$cyl)) Arthritis library(grid) library(vcd) table(Arthritis$Treatment,Arthritis$Improved) with(data=Arthritis,table(Treatment,Improved)) ?xtabs x<-xtabs(~Treatment+Improved,data=Arthritis) margin.table(x) margin.table(x,1) margin.table(x,2) addmargins(x,1) addmargins(x,2) y<-xtabs(~Treatment+Improved+Sex,data=Arthritis) ftable(y)

獨(dú)立性檢驗(yàn)函數(shù)
獨(dú)立性檢驗(yàn)是根據(jù)頻數(shù)信息判斷兩類(lèi)因子彼此相關(guān)或相互獨(dú)立的假設(shè)性檢驗(yàn)。所謂獨(dú)立性就是指變量之間的獨(dú)立,沒(méi)有關(guān)系。
一種藥物單獨(dú)對(duì)男性起作用,單獨(dú)對(duì)女性起作用就是獨(dú)立性,否者就是相關(guān)性。
卡方檢驗(yàn)
Fisher檢驗(yàn)
Cocharan-Mantel-Haenszel檢驗(yàn)

假設(shè)檢驗(yàn)是數(shù)理統(tǒng)計(jì)學(xué)中根據(jù)一定假設(shè)條件由樣本推斷總體的一種方法。
原假設(shè)-沒(méi)有發(fā)生;
備擇假設(shè)——發(fā)生了;

具體做法是:
根據(jù)問(wèn)題的需要對(duì)所研究的總體作某種假設(shè),記作H0;
選取合適的統(tǒng)計(jì)量,這個(gè)統(tǒng)計(jì)量的選取藥使得在假設(shè)H0成立時(shí),其分布為已知;
由實(shí)測(cè)的樣本,計(jì)算出統(tǒng)計(jì)量的值,并根據(jù)預(yù)先給定的顯著水平進(jìn)行檢驗(yàn),作出拒絕或接受假設(shè)H0的判斷.
p-value就是Probability的值,它是一個(gè)通過(guò)計(jì)算得到的概率值,也就是在原假設(shè)為真時(shí),得到最大的或者超出所得到的檢驗(yàn)統(tǒng)計(jì)量值的概率。
一般將p值定位到0.05,當(dāng)p<0.05拒絕原假設(shè),p>0.05,不拒絕原假設(shè)。

library(grid) library(vcd) mytable<-table(Arthritis$Treatment,Arthritis$Improved) chisq.test(mytable)#卡方檢驗(yàn) fisher.test(mytable)#邊際固定的列聯(lián)表中行和列是相對(duì)獨(dú)立的 mytable<-xtabs(~Treatment+Improved+Sex,data=Arthritis) mantelhaen.test(mytable)#檢驗(yàn)前兩個(gè)變量相對(duì)于第三個(gè)變量是否獨(dú)立

相關(guān)性分析函數(shù)

相關(guān)性分析是指對(duì)兩個(gè)或多個(gè)具備相關(guān)性的變量元素進(jìn)行分析,從而衡量?jī)蓚€(gè)變量因素的相關(guān)密切程度。相關(guān)性的元素之間需要存在一定的聯(lián)系或者概率才可以進(jìn)行相關(guān)性分析。簡(jiǎn)單來(lái)說(shuō)就是變量之間是否有關(guān)系

相關(guān)系數(shù)指的是他們之間相互關(guān)聯(lián)的程度,例如Pearson相關(guān)系數(shù)丶Spearman相關(guān)系數(shù)丶Kendall相關(guān)系數(shù)丶偏相關(guān)系數(shù)丶多分格(polychoric)相關(guān)系數(shù)
和多系列(polyserial)相關(guān)系數(shù)
每種相關(guān)系數(shù)是如何被定義的有什么優(yōu)點(diǎn)和使用范圍!

cor(state.x77,method = "spearman") cor(state.x77,method = "Pearson") cov(state.x77) x<-state.x77[,c(1,2,3,6)] y<-state.x77[,c(4,5)] x #use選項(xiàng)看怎么對(duì)待缺失項(xiàng) cor(state.x77) cov()#計(jì)算協(xié)方差,計(jì)算兩個(gè)數(shù)的誤差使用偏相關(guān)的時(shí)候要使用協(xié)方差 cor(x,y)#計(jì)算x和y之間的相關(guān)性 library(ggm) pcor(c(1,5,2,3,6),cov(state.x77))#偏相關(guān)是指在控制一個(gè)或多個(gè)變量時(shí),剩余其他多個(gè)變量的關(guān)系

相關(guān)性檢驗(yàn)函數(shù)
用cor算出相關(guān)性還不夠,數(shù)值高不是統(tǒng)計(jì)學(xué)的指標(biāo),
還需要通過(guò)P值進(jìn)行相關(guān)性的檢驗(yàn)。
置信區(qū)間:confidence interval,指由樣本統(tǒng)計(jì)量所構(gòu)造的總體參數(shù)的估計(jì)區(qū)間。
在統(tǒng)計(jì)學(xué)中,一個(gè)概率樣本的置信區(qū)間是對(duì)這個(gè)樣本的某個(gè)總體參數(shù)的區(qū)間估計(jì)。
置信區(qū)間展現(xiàn)的是這個(gè)參數(shù)的真實(shí)值又一定概率落在測(cè)量結(jié)果的周?chē)潭取?br /> 置信區(qū)間給出的是被測(cè)量參數(shù)的測(cè)量值的可信程度

cor(state.x77,method = "spearman") cor(state.x77,method = "Pearson") cov(state.x77) x<-state.x77[,c(1,2,3,6)] y<-state.x77[,c(4,5)] x #use選項(xiàng)看怎么對(duì)待缺失項(xiàng) cor(state.x77) cov()#計(jì)算協(xié)方差,計(jì)算兩個(gè)數(shù)的誤差使用偏相關(guān)的時(shí)候要使用協(xié)方差 cor(x,y)#計(jì)算x和y之間的相關(guān)性 library(ggm) pcor(c(1,5,2,3,6),cov(state.x77))#偏相關(guān)是指在控制一個(gè)或多個(gè)變量時(shí),剩余其他多個(gè)變量的關(guān)系 cor.test(state.x77[,3],state.x77[,5])#p遠(yuǎn)小于0.05拒絕原假設(shè),相關(guān)系數(shù)不為0為0.702 #cor.test有四個(gè)選項(xiàng)參數(shù)x,y是相關(guān)性的選項(xiàng)變量alternative選擇檢測(cè)相關(guān)性, #two.sided,greater less分別代表,檢測(cè)兩種,檢測(cè)正相關(guān),檢測(cè)負(fù)相關(guān) corr.test(state.x77) library(ggm) x<-pcor(c(1,5,2,3,6),cov(state.x77)) pcor.test(x,3,50)#要控制的變量數(shù),樣本量 #t檢驗(yàn)自由度df和pvalue cor(state.x77,method = "spearman") cor(state.x77,method = "Pearson") cov(state.x77) x<-state.x77[,c(1,2,3,6)] y<-state.x77[,c(4,5)] x #use選項(xiàng)看怎么對(duì)待缺失項(xiàng) cor(state.x77) cov()#計(jì)算協(xié)方差,計(jì)算兩個(gè)數(shù)的誤差使用偏相關(guān)的時(shí)候要使用協(xié)方差 cor(x,y)#計(jì)算x和y之間的相關(guān)性 library(ggm) pcor(c(1,5,2,3,6),cov(state.x77))#偏相關(guān)是指在控制一個(gè)或多個(gè)變量時(shí),剩余其他多個(gè)變量的關(guān)系 cor.test(state.x77[,3],state.x77[,5])#p遠(yuǎn)小于0.05拒絕原假設(shè),相關(guān)系數(shù)不為0為0.702 #cor.test有四個(gè)選項(xiàng)參數(shù)x,y是相關(guān)性的選項(xiàng)變量alternative選擇檢測(cè)相關(guān)性, #two.sided,greater less分別代表,檢測(cè)兩種,檢測(cè)正相關(guān),檢測(cè)負(fù)相關(guān) corr.test(state.x77) library(ggm) x<-pcor(c(1,5,2,3,6),cov(state.x77)) pcor.test(x,3,50)#要控制的變量數(shù),樣本量 #t檢驗(yàn)自由度df和pvaluef分組實(shí)驗(yàn)的相關(guān)性檢驗(yàn), #藥物組合相關(guān)性組就是一個(gè)很好的對(duì)照 #t是student‘t-test #t檢驗(yàn)是用t分布理論推論差異發(fā)生的概率 #從而比較兩個(gè)平均數(shù)的差異是否顯著 library(MASS) UScrime t.test(Prob~So,data=UScrime) #p<0.05可以拒絕相同概率的假設(shè) #參數(shù)檢驗(yàn)和非參數(shù)檢驗(yàn)

非參數(shù)檢驗(yàn)
非參數(shù)檢驗(yàn),稱(chēng)為Nonparametric tests,在總體方差未知或知道甚少的情況
,利用樣本數(shù)據(jù)對(duì)總體分布形態(tài)等進(jìn)行推斷的方法。由于非參數(shù)檢驗(yàn)方法在推斷過(guò)程中不涉及有關(guān)總體分布的參數(shù)因此而得名的
參數(shù)檢驗(yàn)
是在總體分布形式已知的情況下,對(duì)總體分布的參數(shù)入均值丶方差等進(jìn)行推斷的方法。也就是數(shù)據(jù)分布已知,比如滿(mǎn)足正態(tài)分布。
繪圖函數(shù)
R語(yǔ)言四大作圖系統(tǒng)
1丶基礎(chǔ)繪圖系統(tǒng)
2丶lattice包
3丶ggplot2包
4丶grid包。
R 基礎(chǔ)繪圖系統(tǒng)
1丶高級(jí)繪圖
高級(jí)繪圖是一步到位,可以直接繪制出圖;
2丶低級(jí)繪圖
而低級(jí)繪圖,不能單獨(dú)使用,必須在高級(jí)繪圖產(chǎn)生圖形的基礎(chǔ)上,對(duì)圖形進(jìn)行調(diào)整,比如加一條線(xiàn),加上標(biāo)題文字等
散點(diǎn)圖:x和y兩個(gè)坐標(biāo)數(shù)據(jù)
直方圖
因子類(lèi)型,
熱力圖
矩陣類(lèi)型
S3系統(tǒng),像是重載分配不同名字的函數(shù)。

plot(women$height,women$weight)#散點(diǎn)圖 plot(as.factor(women$height))#直方圖 plot(mtcars$cyl) plot(as.factor(mtcars$cyl)) plot(as.factor(mtcars$cyl),mtcars$carb)#箱型圖 plot(mtcars$carb,as.factor(mtcars$cyl))#散列圖 plot(as.factor(mtcars$cyl),as.factor(mtcars$carb))#脊柱圖 plot(women$height~women$weight)#關(guān)系圖 fit<-lm(height~weight,data=women) fit plot(fit)#生成四幅圖 ls("package:graphics") demo(graphics)plot(women$height,women$weight)#散點(diǎn)圖 plot(as.factor(women$height))#直方圖 plot(mtcars$cyl) plot(as.factor(mtcars$cyl)) plot(as.factor(mtcars$cyl),mtcars$carb)#箱型圖 plot(mtcars$carb,as.factor(mtcars$cyl))#散列圖 plot(as.factor(mtcars$cyl),as.factor(mtcars$carb))#脊柱圖 plot(women$height~women$weight)#關(guān)系圖 fit<-lm(height~weight,data=women) fit plot(fit)#生成四幅圖 par() plot(as.factor(mtcars$cyl),col=c("red","green","blue"))

自定義函數(shù)
偏度,是統(tǒng)計(jì)數(shù)據(jù)分布偏斜方向和程度的度量,是統(tǒng)計(jì)數(shù)據(jù)分布非對(duì)稱(chēng)程度的數(shù)字特征。
峰度,又稱(chēng)峰態(tài)系數(shù)。表征概率密度分布曲線(xiàn)在平均值出峰值高低的特征數(shù)

myfun<-function(x,na.omit=FALSE) {if(na.omit)x<-x[!is.na(x)];其他巴拉巴拉的省略 }

數(shù)據(jù)分析實(shí)戰(zhàn)
抽絲撥簡(jiǎn),
哪些有影響,哪些主要的哪些次要的哪些是,正影響,哪些是負(fù)影響。

線(xiàn)性回歸

summary() fit<-lm(weight~height,data = women) coefficients(fit)#截距和系數(shù) confint(fit)#置信區(qū)間默認(rèn)為95%的自信區(qū)間 confint(fit,level = 0.5)#設(shè)置為50%的置性區(qū)間 fitted(fit)#擬合模型的預(yù)測(cè)值 women$weight-fitted(fit) #殘差 residuals(fit) women women1<-women predict(fit,women1)#用擬合模型對(duì)新的進(jìn)行預(yù)測(cè) plot(fit) plot(women$height,women$weight) abline#繪制出擬合曲線(xiàn) fit2<-lm(weight~height+I(height^2),data=women) fit2 summary(fit2) plot(women$height,women$weight) abline(fit) lines(women$height,fitted(fit2),col="red") fit3<-lm(weight~height+I(height^2)+I(height^3),data=women) fit3 lines(women$height,fitted(fit3),col="blue")

不能過(guò)度建模,這個(gè)是對(duì)于數(shù)據(jù)集的建模而不是實(shí)際數(shù)據(jù)的建模
多元線(xiàn)性回歸

summary() fit<-lm(weight~height,data = women) coefficients(fit)#截距和系數(shù) confint(fit)#置信區(qū)間默認(rèn)為95%的自信區(qū)間 confint(fit,level = 0.5)#設(shè)置為50%的置性區(qū)間 fitted(fit)#擬合模型的預(yù)測(cè)值 women$weight-fitted(fit) #殘差 residuals(fit) women women1<-women predict(fit,women1)#用擬合模型對(duì)新的進(jìn)行預(yù)測(cè) plot(fit) plot(women$height,women$weight) abline#繪制出擬合曲線(xiàn) fit2<-lm(weight~height+I(height^2),data=women) fit2 summary(fit2) plot(women$height,women$weight) abline(fit) lines(women$height,fitted(fit2),col="red") fit3<-lm(weight~height+I(height^2)+I(height^3),data=women) fit3 lines(women$height,fitted(fit3),col="blue") states<-as.data.frame(state.x77[,c("Murder","Population","Illiteracy","Income","Frost")]) fit<-lm(Murder~Population+Illiteracy+Income+Frost,data=states) summary(fit) coef(fit) options(digits = 4) coef(fit) mtcars fit<-lm(mpg~hp+wt+hp:wt,data = mtcars) summary(fit) ?AIC#赤則信息模型 fit1<-lm(Murder~Population+Income+Frost,data = states) fit2<-lm(Murder~Population+Income,data=states) AIC(fit1,fit2)#越小越好 #多了就不行 #用逐步回歸法向前逐步回歸向后逐步回歸或者 #全子集回歸法全部可能的模型取最佳的模型,如果變量太多了需要大量的機(jī)算 library(MASS) stepAIC(fit,direction = "backward")#逐步回歸法 library(leaps) regsubsets(Murder~Population+Illiteracy+Income+Frost,data=states,nbest=4) #全子集回歸

回歸診斷
這個(gè)模型是否是最佳模型?
模型多大程度滿(mǎn)足OLS模型的統(tǒng)計(jì)假設(shè)?
模型是否經(jīng)得起更多數(shù)據(jù)的檢驗(yàn)?
如果擬合出來(lái)的模型指標(biāo)不好,該如何繼續(xù)下去?

要使用最小二乘法進(jìn)行OLS模型統(tǒng)計(jì)假設(shè)
1丶正態(tài)性:對(duì)于固定的自變量值,因變量值成正態(tài)分布。
2丶獨(dú)立性:因變量之間相互獨(dú)立。
3丶線(xiàn)性:因變量與自變量之間為線(xiàn)性關(guān)系。
4丶同方差性:因變量的方差不隨自變量的水平不同而變化。也可稱(chēng)作不變方差。
R系數(shù)安裝包
plot(fit)
生成的四符圖。
第一幅殘差擬合圖,表示因變量和自變量是否成線(xiàn)性關(guān)系。圖中的點(diǎn)為殘差值的分布,線(xiàn)為擬合曲線(xiàn)如果貼合度可以說(shuō)明數(shù)據(jù)成線(xiàn)性分布
QQ圖用于描述正態(tài)性
第三幅圖為位置與尺寸圖,用來(lái)描述同方差性
最后一幅圖是殘差與杠桿圖,提供了對(duì)單個(gè)數(shù)據(jù)值的觀測(cè),可以看到哪些點(diǎn)偏差較遠(yuǎn)。較遠(yuǎn)的點(diǎn)為離群點(diǎn),還可以看到高杠桿點(diǎn):異常變量的組合和強(qiáng)影響點(diǎn):影響較大可以用Cook‘distance來(lái)鑒別。

模型是否經(jīng)得起更多數(shù)據(jù)的驗(yàn)證呢。
可以使用抽樣法驗(yàn)證
1丶數(shù)據(jù)集中有1000個(gè)樣本,隨機(jī)抽取500個(gè)數(shù)據(jù)進(jìn)行回歸分析;
2丶模型建好之后,利用predict函數(shù),對(duì)剩余500個(gè)樣本進(jìn)行預(yù)測(cè),比較殘差值;
3丶如果預(yù)測(cè)準(zhǔn)確,說(shuō)明模型可以,否則就需要調(diào)整模型
方差分析
方差分析,稱(chēng)為Analysis of Variance,簡(jiǎn)稱(chēng)ANOVA,也稱(chēng)為“變異數(shù)分析”,用于兩個(gè)及兩個(gè)以上樣本均數(shù)差別顯著的性檢驗(yàn)。從廣義上來(lái)講,方差分析也屬于回歸分析的一種。只不過(guò)現(xiàn)象回歸的因變量一般是連續(xù)變量。而當(dāng)自變量是因子時(shí),研究關(guān)注的重點(diǎn)通常會(huì)從預(yù)測(cè)轉(zhuǎn)向不同組之間差異的比較。這就是方差分析
R中的因子
計(jì)算頻數(shù)
獨(dú)立性檢驗(yàn)
相關(guān)性檢驗(yàn)
方差分析
主成分分析
因子分析

方差分析會(huì)大量用在科學(xué)研究中,例如實(shí)驗(yàn)設(shè)計(jì)時(shí),進(jìn)行分組比較,例如藥物研究實(shí)驗(yàn),處理組與對(duì)照組進(jìn)行比較
方差分析
1丶單因素方差分析ANOVA(組內(nèi),組間)
t檢驗(yàn)和兩組方差分析等價(jià)
2丶雙因素方差分析 ANOVA
既含有組間又含有組內(nèi)
3丶協(xié)方差分析 ANCOVA
協(xié)變量,方差分析中,包含協(xié)變量,就屬于協(xié)方差分析
協(xié)變量:協(xié)助變量?如抑郁癥對(duì)焦慮癥有影響
4丶多元方差分析 MANOVA
如果方差研究中包含了多個(gè)因變量,那么這種實(shí)驗(yàn)設(shè)計(jì)就稱(chēng)為多元方差分析
5丶多元方差分析 MANCOVA
如果多元方差變量中存在協(xié)變量

library(multcomp) attach(cholesterol) table(trt) aggregate(response,by=list(trt),FUN=mean) fit<-aov(response~trt,data=cholesterol) summary(fit) fit.lm<-lm(response~trt,data=cholesterol) #lm遇到變量是因子時(shí)就會(huì)將一系列對(duì)照變量來(lái)替換因子 ?litter litter table(litter$dose) #單因素的協(xié)方差公式y(tǒng)~x+A x是協(xié)變量 avo(,data=) manova(,data=)

功效分析
將數(shù)據(jù)集減小的分析方法。自己查自己找!
廣義線(xiàn)性模型
glm自己查去,就是改變回歸分析僅僅能在正態(tài)分布的時(shí)候使用的情況
Logistic回歸

主成分分析
就是將多個(gè)變量通過(guò)線(xiàn)性組合變成幾個(gè)比較少的變量來(lái)分析。建模自己查,函數(shù)自己查
因子分析
將每個(gè)變量分解為相同新定義參數(shù)的組合,建模自己查函數(shù)自己查
購(gòu)物籃分析
r里面的內(nèi)置函數(shù)集里面有
差不多就這樣

總結(jié)

以上是生活随笔為你收集整理的R语言学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。