R是一套完整的數(shù)據(jù)處理、計算和制圖軟件系統(tǒng)。其功能包括:數(shù)據(jù)存儲和處理系統(tǒng);數(shù)組運算工具(其向量、矩陣運算方面功能尤其強大);完整連貫的統(tǒng)計分析工具;優(yōu)秀的統(tǒng)計制圖功能;簡便而強大的編程語言:可操縱數(shù)據(jù)的輸入和輸出,可實現(xiàn)分支、循環(huán),用戶可自定義功能。
章丘網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,章丘網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為章丘上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的章丘做網(wǎng)站的公司定做!
與其說R是一種統(tǒng)計軟件,還不如說R是一種數(shù)學計算的環(huán)境,因為R并不是僅僅提供若干統(tǒng)計程序、使用者只需指定數(shù)據(jù)庫和若干參數(shù)便可進行一個統(tǒng)計分析。R的思想是:它可以提供一些集成的統(tǒng)計工具,但更大量的是它提供各種數(shù)學計算、統(tǒng)計計算的函數(shù),從而使使用者能靈活機動的進行數(shù)據(jù)分析,甚至創(chuàng)造出符合需要的新的統(tǒng)計計算方法。
該語言的語法表面上類似 C,但在語義上是函數(shù)設(shè)計語言(functional programming language)的變種并且和Lisp以及APL有很強的兼容性。特別的是,它允許在“語言上計算”(computing on the language)。這使得它可以把表達式作為函數(shù)的輸入?yún)?shù),而這種做法對統(tǒng)計模擬和繪圖非常有用。
R是一個免費的自由軟件,它有UNIX、LINUX、MacOS和WINDOWS版本,都是可以免費下載和使用的。在那兒可以下載到R的安裝程序、各種外掛程序和文檔。在R的安裝程序中只包含了8個基礎(chǔ)模塊,其他外在模塊可以通過CRAN獲得。
R的源代碼可自由下載使用,亦有已編譯的執(zhí)行檔版本可以下載,可在多種平臺下運行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。 R主要是以命令行操作,同時有人開發(fā)了幾種圖形用戶界面。
R內(nèi)建多種統(tǒng)計學及數(shù)字分析功能。因為S的血緣,R比其他統(tǒng)計學或數(shù)學專用的編程語言有更強的物件導向(面向?qū)ο蟪绦蛟O(shè)計)功能。
R的另一強項是繪圖功能,制圖具有印刷的素質(zhì),也可加入數(shù)學符號。
雖然R主要用于統(tǒng)計分析或者開發(fā)統(tǒng)計相關(guān)的軟體,但也有人用作矩陣計算。其分析速度可媲美GNU Octave甚至商業(yè)軟件MATLAB。
R的功能能夠通過由用戶撰寫的套件增強。增加的功能有特殊的統(tǒng)計技術(shù)、繪圖功能,以及編程界面和數(shù)據(jù)輸出/輸入功能。這些軟件包是由R語言、LaTeX、Java及最常用C語言和Fortran撰寫。下載的執(zhí)行檔版本會連同一批核心功能的軟件包,而根據(jù)CRAN紀錄有過千種不同的軟件包。其中有幾款較為常用,例如用于經(jīng)濟計量、財經(jīng)分析、人文科學研究以及人工智能。
用法:assign(x, value, pos = -1, envir = as.environment(pos),? inherits = FALSE, immediate = TRUE)
assign函數(shù)在循環(huán)時候,給變量賦值。
舉例說明:
1、
for (i in 1:(length(rowSeq)-1)){
assign(paste("nginx_server_fields7_", i, sep = ""), nginx_server_fields7[(rowSeq[(i-1)+1]):(rowSeq[i+1]), ])
}
2、
for (i in 1:3){
assign(paste("a", i, sep = ""), i:10)
}
ls()
[1] "a1" "a2" "a3" "i"
a1
[1]? 1? 2? 3? 4? 5? 6? 7? 8? 9 10
a2
[1]? 2? 3? 4? 5? 6? 7? 8? 9 10
a3
[1]?3? 4? 5? 6? 7? 8? 9 10
1、paste函數(shù)可用于字符串連接
用法:paste (..., sep = " ", collapse = NULL),分隔符默認為空格
我們簡單舉個例子
1)paste("a","b") ##能連接a b
[1] "a b"
paste("a","b","c")
[1] "a b c"
2)設(shè)置分隔符paste("a","b",sep="=") ##注意到用等號分隔了
[1] "a=b"
3)連接多個元素paste("a",1:5,sep="") ##會自動每個元素與a相連
[1] "a1""a2""a3""a4""a5"
4)paste("a",1:5,".pdf",sep="") ##比如想批量輸出文件名
[1] "a1.pdf""a2.pdf""a3.pdf""a4.pdf""a5.pdf"、
2、collapse參數(shù)
謝益輝大佬說這個參數(shù)引無數(shù)英雄競折腰啊,大家只會sep
1)paste("a",1,collapse="+") ##注意到了吧,collapse沒用上
[1] "a 1"
2)paste(c("a","b","c"),collapse="+") ##這樣就很容易理解了,collapse折疊起了元素
[1] "a+b+c"
3)paste("a",1:5,sep="") ##再來更明顯的舉例
[1] "a1""a2""a3""a4""a5"
4)paste("a",1:5,sep="",collapse="+")?##先在元素間連接,然后折疊
[1] "a1+a2+a3+a4+a5"
3、與paste0函數(shù)的區(qū)別
paste0函數(shù),默認sep=""是兩個函數(shù)唯一的區(qū)別
paste(c("a","b","c"),1:3)##默認空格符
[1] "a 1""b 2""c 3"
paste(c("a","b","c"),1:3,sep=" ")
[1] "a 1""b 2""c 3"
paste(c("a","b","c"),1:3,sep="")
[1] "a1""b2""c3"
如果兩個向量長度不同paste(c("a","b","c"),1:5) ##超出范圍后繼續(xù)從前向后連接
[1] "a 1"? "b 2"? "c 3"? "a 4"? "b 5"
paste0(c("a","b","c"),1:3)#默認元素連接為sep=""
[1] "a1""b2""c3"
用法:unlist()函數(shù)的作用,就是將list結(jié)構(gòu)的數(shù)據(jù)du,變zhi成非list的數(shù)據(jù),即將list數(shù)據(jù)變成 字符串向量 或者數(shù)字向量的形式
如果是向量的話就直接輸出向量
例子:
%in%相當于match()函數(shù)的一個縮寫。用來判斷一個數(shù)組或矩陣是否包含在另一個數(shù)組或矩陣里。舉個例子一目了然:
#首先復制兩個變量a和b
a?-?1:5
b?-?3:7
a?%in%?b????#看a的元素是否包含在b中輸出結(jié)果如下:
[1]?FALSE?FALSE??TRUE??TRUE??TRUE
用法:apply(x, MARGIN, FUN, ...)
作用:對 矩陣 的行或列使用函數(shù),或者對 數(shù)組 的各個維度使用函數(shù)
x為數(shù)據(jù)對象,MARGIN是維度的下標,MARGIN=1表示行,MARGIN=2表示列,F(xiàn)UN是自己指定的任意或自定義函數(shù)
注:數(shù)據(jù)框dataframe也可以使用apply函數(shù),該函數(shù)會自動將數(shù)據(jù)框轉(zhuǎn)化為矩陣,但前提是數(shù)據(jù)框中各列的數(shù)據(jù)類型 必須是數(shù)值型,否則會報錯。
用法:lapply(x,FUN,...)
作用:對列表中的各個元素使用函數(shù)
x是格式為列表的數(shù)據(jù)源,F(xiàn)UN是任意函數(shù)。
intersect(data1,data2):交集
union(data1,data2):并集
R語言數(shù)據(jù)對象與運算
R語言數(shù)據(jù)對象與運算 筆記整理
2.1 數(shù)據(jù)對象及類型
R語言創(chuàng)建和控制的實體被稱為對象(object)
ls()命令來查看當前系統(tǒng)里的數(shù)據(jù)對象
R對象的名稱必須以一個英文字母打頭,并由一串大小寫字母、數(shù)字或鐘點組成
注意:R區(qū)分大小寫
不要用R的內(nèi)置函數(shù)名稱作為數(shù)據(jù)對象的名稱,如c、length等
2.2 數(shù)據(jù)對象類型
R語言的對象包括
數(shù)值型(numeric):實數(shù), 可寫成整數(shù)(integers)、小數(shù)(decimal fractions)、科學記數(shù)(scientific notation)
邏輯型(logical):T(true)或F(FALSE)
字符型(character):夾在" "或之間
復數(shù)型(complex):形如a+bi
原味型(raw):以二進制形式保存數(shù)據(jù)
缺省型(missing value):有些統(tǒng)計資料是不完整的,當一個元素或值在統(tǒng)計的時候是“不可得到(not available)”或“缺失值(missing value)”的時候,相關(guān)位置可能會被保留并賦予一個特定的NA(not available)值,任何NA的運算結(jié)果都是NA。
辨別和轉(zhuǎn)換數(shù)據(jù)對象類型的函數(shù):
辨別 轉(zhuǎn)換
character is.character() as,character()
complex
double
integer
logical
NA
numeric
2.3 數(shù)據(jù)對象構(gòu)造
R語言里的數(shù)據(jù)對象主要有六種構(gòu)造:向量(vector)、矩陣(matrix)、數(shù)組(array)、列表(list)、數(shù)據(jù)框(data frames)、因子(factor)
2.3.1 向量(vector)是由有相同基本類型元素組成的序列,相當于一維數(shù)組
5個數(shù)值組成的向量x,這是一個用函數(shù)c()完成的賦值語句,這里c()可以有任意多個參數(shù),而它輸出的值則是一個把這些參數(shù)首尾相連形成的一個向量
R的賦值符號除了“-”外,還有"-""="
例如:
c(1,3,5,7,9) - y
y
[1] 2 5 8 3
z = c(1,3,5,7,9)
z
[1] 1 3 5 7 9
assign()函數(shù)對向量進行賦值
length():可返回向量的長度
mode()可返回向量的數(shù)據(jù)類型
正則序列 用 “:”符號,可產(chǎn)生有規(guī)律的正則序列(: 的運算級別最高)
函數(shù)seq()產(chǎn)生有規(guī)律的各種序列
seq(from,to ,by) from 給序列的起始值,to表示序列的終止值,by表示步長(by 省略時,表示步長值為1)
seq(1,10,2)
[1] 1 3 5 7 9
seq(1,10)
[1] 1 2 3 4 5 6 7 8 9 10
有時關(guān)注的是數(shù)列的長度,利用句法:seq(下界,by=,length=)
seq(1,by=2,length=10)
[1] 1 3 5 7 9 11 13 15 17 19
rep(x,times,……)x表示要重復的對象,times表示重復的次數(shù)
rep(c(1,3),4)
[1] 1 3 1 3 1 3 1 3
rep(c(1,3),each=4)
[1] 1 1 1 1 3 3 3 3
對每個元素進行重復;
R中的內(nèi)置函數(shù):
mean()來示向量的均值
median()求是位數(shù)
var()求方差
sd()求標準差
sort()對向量排序
rev()將向量按原方向的反方向排列
rank()給求出向量的秩
prod()求向量連乘積
append()為向量添加元素
對向量運算常見函數(shù)表
函數(shù) 用途
sum() 求和
max() 求最大值
min() 求最小值
range() 求極差(全矩)
mean() 求均值
median 求中位數(shù)
var() 求方差
sd() 求標準差
sort() 排序
rev() 反排序
rank() 求秩
append() 添加
replace() 替換
match() 匹配
pmatch() 部分匹配
all() 判斷所有
any() 判斷部分
prod() 積
2.3.2 矩陣
矩陣(matrix)是將數(shù)據(jù)用行和列排列的長方形表格,它是二維的數(shù)組,其單元必須是相同的數(shù)據(jù)類型,通常用列來表示不同的變量,用行表示各個對象。
其句法是:
matrix(data=NA,ncol=1,byrow-=FALSE,dimnames=NULL)
data是必須的,其它幾個選擇參數(shù)。
nrow表示矩陣的行數(shù)
ncol表示矩陣的列數(shù)
byrow默認為FALSE,表示矩陣按列排列,如設(shè)置為T,表示按行排列;
dimnames可更改矩陣行列名字
diag()函數(shù)生成對角矩陣
diag()這個函數(shù)比較特別,當數(shù)據(jù)是向量時則生成對角矩陣,但當數(shù)據(jù)是矩陣時,則返回對角元素
也可用函數(shù)diag()生成單位矩陣
當我們生成了某個矩陣后,若要訪問矩陣的某個元素或某行(列),可以利用形如A[i,j]的形式得到相應(yīng)的索引矩陣
矩陣可進行相應(yīng)的加減乘除運算,但運算過程中要注意行數(shù)和列數(shù)的限制條件
R里A*B并不是表示矩陣相乘,只表示矩陣對應(yīng)的元素相乘
矩陣相乘應(yīng)用A%*%B
dim()返回矩陣的行數(shù)和列數(shù)
nrow()返回矩陣的行數(shù)
ncol()返回矩陣的列數(shù)
solve()返回矩陣的逆矩陣
對矩陣運算的常見函數(shù)
函數(shù) 用途
as.matrix() 把非矩陣的轉(zhuǎn)換成矩陣
is.matrix() 辨別是否矩陣
diag() 返回對角元素或生成對角矩陣
eigen() 求特征值和特征向量
solve() 求逆矩陣
chol() Choleski分解
svd() 奇異值分解
qr() QR分解
det() 求行列式
dim() 返回行列數(shù)
t() 矩陣轉(zhuǎn)置
apply() 對矩陣應(yīng)用函數(shù)
R語言還提供了專門針對矩陣的行或列計算的函數(shù)
如 colSUms()對矩陣各列求和 colMeans()求矩陣各列的均值
類似的有 rowSums()rowMeans()
更一般的方法:
apply()函數(shù)來對各行各列進行運算
句法是:apply(X,MARGIN,FUN,……)
X表示要處理的數(shù)據(jù)
MARGIN表示函數(shù)作用的范圍
取1表示對行運用函數(shù)
取2表示對列運用函數(shù)
FUN表示要運用的函數(shù)
rbind()、cbind()將兩個或兩個以上的矩陣合并起來
rbind()表示按行合并,cbind()則表示按列合并
2.3.3 數(shù)組
數(shù)組(array)可以看作是帶有多個下標的類型相同的元素的集合。
數(shù)組的生成函數(shù)是array(),其句法是
array(data=NA,dim=length(data),dimnames-NULL)
data表示數(shù)據(jù),可以為空
dim 表示維數(shù)
dimnames可以更改數(shù)組難度的名稱
2.3.4 列表
向量、矩陣和的單元必須是同一類型的數(shù)據(jù),若一個數(shù)據(jù)對象需要含有不同的數(shù)據(jù)類型,可采用列表(list)這種數(shù)據(jù)對象的形式。
列表是一個對象的有序集合構(gòu)成的對象,列表中包含的對象又稱為它的分量(components),分量可以是不同的模式或(和)類型
語法式為:list (變量1=分量1,變量2=分量2,……)
若要訪問列表的某一成分,可以用LST[[1]],LST[[2]]的形式訪問
因分量可以被命名,故可以在列表名稱后加$符號,再寫上成分名稱來訪問列表分量
函數(shù)length()、mode()、names()可以分別返回列表的長度(分量的數(shù)目)、數(shù)據(jù)類型、列表里成分的名字
2.3.5 數(shù)據(jù)框
數(shù)據(jù)框(data frame)是一種矩陣形式的數(shù)據(jù),但數(shù)據(jù)框中各列可以是不同類型的數(shù)據(jù)。數(shù)據(jù)框每列是一個變量,每行是一個觀測 。
對可能列入數(shù)據(jù)框中的列表有如下的一些限制:
1.分量必須是向量(數(shù)值,字符,邏輯),因子,數(shù)值矩陣,列表或者其他數(shù)據(jù)框。
2.矩陣,列表和數(shù)據(jù)框為新的數(shù)據(jù)框提供了盡可能多的變量,因為它們各自擁有列、元素或者變量。
3.數(shù)值向量、邏輯值、因子保持原有格式,而字符向量會被強制轉(zhuǎn)換成因子并且它的水平就是向量中出現(xiàn)的獨立值。
4.在數(shù)據(jù)框中以變量形式出現(xiàn)的向量結(jié)構(gòu)必須長度一致,矩陣結(jié)構(gòu)必須有一樣的行數(shù)。
R中用函數(shù)data.frame()生成數(shù)據(jù)框,其句法是:data.frame(data1,data2,……)
數(shù)據(jù)框的列名默認為變量名,也可對列名進行重新命名
也可以對數(shù)據(jù)框的行名進行修改
2.3.6 因子和有序因子
分類型數(shù)據(jù)經(jīng)常要把數(shù)據(jù)分成不同的水平或因子(factor)
生成因子的命令是factor(),其句法是:factor(data,levels,labels,……)
其中data表示數(shù)據(jù)
levels是因子水平向量
labels是因子的標簽向量
levels,labels是備選項,可以不選
若上面的每個因子并不表示因子的大小,要表達因子之間有大小順序(考慮因子之間的順序),則可以用 ordered()函數(shù)產(chǎn)生
2.4 數(shù)據(jù)的錄入及編輯
c函數(shù):c函數(shù)是把各個值聯(lián)成一個向量或列表,可以形成數(shù)值型向量、字符型向量或其它類型向量
scan函數(shù):功能類似于c函數(shù),實際上是一種鍵盤輸入數(shù)據(jù)函數(shù)。當輸入scan(),然后按回車鍵,這時將等待輸入數(shù)據(jù),數(shù)據(jù)之間只要空格分開即可(c函數(shù)要用逗號分開)。輸入完數(shù)據(jù),再按回車鍵,這時數(shù)據(jù)錄入完畢。
scan函數(shù)還可以讀入外部文本文件,若現(xiàn)有一個文本文件,data.txt,讀入這個文件的命令是: x=scan(file="dat.txt")
若原文件的數(shù)據(jù)之間有逗號等分隔符,用scan讀入應(yīng)該去掉這些分隔符,其命令是: x=scan(file="dat.txt",sep=",")
編輯數(shù)據(jù)
data.entry命令
xx原先未被定義,現(xiàn)在賦予其一個空值,這時會出現(xiàn)一個電子表格界面,等待輸入數(shù)據(jù): data.entry(xx=c(NA))
當電子表格關(guān)閉后,數(shù)據(jù)會自動保存
edit命令用來編輯函數(shù),也可用來編輯數(shù)據(jù),但不會自動保存
fix函數(shù)與edit類似,但它可以自動保存
從外部文件讀入數(shù)據(jù)
從文本文件讀?。?/p>
s1=read.table("student.txt")
s1
V1 V2 V3
1 class sex score
2 1 女 80
3 1 男 85
4 2 男 92
5 2 女 76
6 3 女 61
7 3 女 95
8 3 男 83
讀入表格數(shù)據(jù)的命令是:read.table
忽略掉標簽而直接使用默認的行標簽
s2=read.table("student.txt",header=T)
s2
class sex score
1 1 女 80
2 1 男 85
3 2 男 92
4 2 女 76
5 3 女 61
6 3 女 95
7 3 男 83
從網(wǎng)絡(luò)讀入數(shù)據(jù)
url可以從網(wǎng)頁上讀入正確格式的數(shù)據(jù),要借助read.table函數(shù)
address=
/sample.txt
read.table(file=url(address))
讀入其他格式的數(shù)據(jù)庫
要讀入其他格式的數(shù)據(jù)庫,必須先安裝"foreign"模塊,它不屬于R的8個內(nèi)置模塊,需在使用前安裝。 library(foreign)
SAS:R只能詩篇SAS Transport format(XPORT)文件,需要把普通的SAS數(shù)據(jù)文件(.ssd和.sas7bdat)轉(zhuǎn)換成Transport format(XPORT)文件,再用命令:read.xport()
SPSS數(shù)據(jù)庫:read.spss()可讀入SPSS數(shù)據(jù)文件
Epi info數(shù)據(jù)庫:
要給數(shù)據(jù)集一個名字,則是;read.epiinfo("文件名.rec")-名稱
Stata數(shù)據(jù)庫:
R可讀入Stata5,6,7的數(shù)據(jù)庫
讀入數(shù)據(jù)文件后,使用數(shù)據(jù)集名$變量名,即可使用各個變量
read.dta(“文件名.dta”)
讀入數(shù)據(jù)文件后,使用數(shù)據(jù)集名$變量名,即可使用各個變量。
mean(data$age)
便是計算數(shù)據(jù)集 data中的變量age的均數(shù)。
2.5 函數(shù)、循環(huán)與條件表達式
2.5.1 編寫函數(shù)
句法是:
函數(shù)名 = function (參數(shù)1,參數(shù)2…)
{
函數(shù)體
函數(shù)返回值
}
對于這類只有一個算術(shù)式的簡單函數(shù),也要不要{}
mean(data$age)
便是計算數(shù)據(jù)集 data中的變量age的均數(shù)。
若不使用圓括號,直接輸入函數(shù)名,按回車鍵將顯示函數(shù)的定義式:
單參數(shù):使函數(shù)個性化,可使用單參數(shù),函數(shù)將會根據(jù)參數(shù)的不同,返回值不同
welcome.sb = function(names) print(paste("welcome",names,"to
use R"))
welcome.sb("Mr fang")
[1] "welcome Mr fang to use R"
welcome.sb("Mr Wang")
[1] "welcome Mr Wang to use R"
默認參數(shù):即不輸入任何參數(shù)
函數(shù)的默認參數(shù)
welcome.sb=function(names="Mr fang")print(paste("welcome",
names,"to use R"))
welcome.sb()
[1] "welcome Mr fang to use R"
當函數(shù)體的表達式超過一個時,要用{}封起來
2.5.2 for循環(huán)
for循環(huán)的句法是:
for (變量 in取值向量) {
表達式…
}
c本身在這里應(yīng)該是“combine”的首字母,用于合并一系列數(shù)字從而形成向量/數(shù)列。
1、向量是用于存儲數(shù)值型,字符型或者邏輯型數(shù)據(jù)的一維數(shù)組。執(zhí)行組合功能的函數(shù)為c(),可以用來創(chuàng)建向量。向量可根據(jù)位置進行索引,需要用[]。
2、矩陣是一個二維數(shù)組,每個元素都擁有相同的模式,可通過函數(shù)matrix()創(chuàng)建矩陣。
3、數(shù)組是一個可以在兩個以上維度存儲數(shù)據(jù)的數(shù)據(jù)對象。例如,如果創(chuàng)建尺寸(2,3,4)的數(shù)組,那么就是創(chuàng)建4個矩形矩陣每個2行3列。數(shù)組只能存儲數(shù)據(jù)類型。
4、矩陣和數(shù)組一樣都只能包含一種數(shù)據(jù)類型,當有多種模式的數(shù)據(jù)時,使用數(shù)據(jù)框就更為方便。數(shù)據(jù)框可以用函數(shù)data.frame () 創(chuàng)建。
5、$? 被用來選取一個給定數(shù)據(jù)框中的某個特定變量。
6、attach()綁定數(shù)據(jù)集,detach()解除數(shù)據(jù)集。
7、with:attach,detach最好在單獨的數(shù)據(jù)框內(nèi)使用,在多個同名對象最好不要使用,函數(shù)with(),可以再具有多個同名對象的數(shù)據(jù)框內(nèi)使用,但是必須加入花括號{},這樣就無須擔心名稱沖突了,但是它也有局限性,賦值僅在此函數(shù)的括號內(nèi)生效。
8、列表是一些對象的有序集合。
9,、數(shù)據(jù)導入?read.table(),其中header =?T,代表第一行為變量名稱,不作為數(shù)據(jù),header =?F相反。sep代表數(shù)據(jù)分隔符,txt為"\t",csv為","。
10、table函數(shù),用 table() 函數(shù)統(tǒng)計因子各水平的出現(xiàn)次數(shù)(稱為頻數(shù)或頻率)。
sex =?c("女","女","女","男","男")
table(sex)
sex
男 女
2 3
求眾數(shù)
aim =?table(sex)[table(sex)==max(table(sex))]
aim
女
3
max(table(sex))
[1] 3
table(sex)==max(table(sex))
sex
男??? 女
FALSE?TRUE
11、 無尺度網(wǎng)絡(luò): 是指在某一復雜的 系統(tǒng) 中,大部分節(jié)點只有少數(shù)幾個連結(jié),而某些節(jié)點卻擁有與其他節(jié)點的大量連結(jié)。這些具有大量連結(jié)的節(jié)點稱為“集散節(jié)點”,所擁有的連結(jié)可能高達數(shù)百、數(shù)千甚至數(shù)百萬。這一特性說明該網(wǎng)絡(luò)是無尺度的,因此,凡具有這一特性的網(wǎng)絡(luò)都是無尺度網(wǎng)絡(luò)。
12、options(stringsAsFactors = F)
#在調(diào)用as.data.frame的時,將stringsAsFactors設(shè)置為FALSE可以避免character類型自動轉(zhuǎn)化為factor類型。
13、class():查看數(shù)據(jù)結(jié)構(gòu):vector、matrix、array、dataframe、list。
14、str():作用用英語來表示是:check classification of viriables,一般用于檢查數(shù)據(jù)框當中有哪些數(shù)據(jù)。
15、mode() :查看數(shù)據(jù)元素類型。
16、typeof() :查看數(shù)據(jù)元素類型,基本等同于mode(),比mode()更為詳細。
17、example():假設(shè)有一個函數(shù)foo,example("foo"),函數(shù)foo的使用示例。
18、apropos():列出名稱中含有foo的所有可用函數(shù)。apropos("foo",mode="function")。
19、data():列出當前已加載包中所含的所有可用示例數(shù)據(jù)集。
20、ls():列出當前工作空間中的對象。
21、rm():移除(刪除)一個或多個對象。
22、history(#):顯示最近使用過的#個命令(默認值為25)。
23、options():顯示或設(shè)置當前選項。有一個收藏文件有介紹options的功能。
24、boxplot():生成盒型圖。
25、sum():計算和。sum(x,na.rm = TRUE)。
26、median():計算中位數(shù)。
27、cbind():以列結(jié)合變量。cbind(x,y,z)。
28、rbind():以行結(jié)合變量。
29、vector():以向量形式結(jié)合數(shù)據(jù)。vector(length = 10)。
30、rep():以矩陣形式結(jié)合數(shù)據(jù)。rep(c(1,,2,3),each = 10)
31、seq():生成一個有序的數(shù)列。seq(1,10)。
32、dim():矩陣或者cbind輸出的維數(shù)。dim(Mydata)。
33、scan():從ascii文件中讀取數(shù)據(jù)。scan(file = "test.txt")。
34、write.table():把一個變量寫入到ascii文件。write.table(Z,file = "test.txt")。
35、order():確定數(shù)據(jù)的順序。order(x)。
36、merge():合并兩個數(shù)據(jù)框。merge(x,y,by = "ID")。
37、str():顯示一個對象的內(nèi)部結(jié)構(gòu)。str(Mydata)。
38、factor():定義變量作為因子。factor(x)。
39、tapply():tapply(X =?Veg$R,INDEX = Veg$Transect,FUN = mean).tapply函數(shù)根據(jù)第二個變量(Transect)的不同水平對第一變量(R)進行了求平均值運算。還可以求sd,var,length等操作。R語言初學者指南P75詳細介紹了這個函數(shù)。
40、下一頁介紹了sapply和lapply。
41、summary():計算基本信息。
42、table():計算列聯(lián)表,統(tǒng)計因子各水平的出現(xiàn)次數(shù)(頻數(shù)或頻率)。table(x,y)。
43、plot():y對x的圖形。pch形狀,col顏色。
44、par():par(mfrow = c(2,2),mar = c(3,3,2,1))
mfrow生成一個具有4個面板的圖形窗口。mar選項指定每個圖形周圍空白的大小,底部、左側(cè)、頂部、右側(cè)。
45、paste():將變量連接成字符串。paste("a","b",sep = "")。
46、log():?log = "x",log = "y",log = "xy",生成對數(shù)軸。
47、%in%:
a-c(1,3,13,1443,43,43,4,34,3,4,3)
b-c(1,13,11,1313,434,1)
a%in%b
# 返回內(nèi)容#?
[1] TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# 取反操作
!(a%in%b)
48、sort()函數(shù)是對向量進行從小到大的排序
rank()函數(shù)返回的是對向量中每個數(shù)值對應(yīng)的秩
order()函數(shù)返回的值表示位置,依次對應(yīng)的是向量的最小值、次小值、第三小值……最大值等(位置索引)
arrange()函數(shù)(需加載dplyr包)針對數(shù)據(jù)框,返回基于某列排序后的數(shù)據(jù)框,方便多重依據(jù)排序。
49、subset(): df - data.frame( a = 1:10, b = 2:11, c = 3:12 )
df - subset(df, select = c(a,c)) #選取列a和c
df - subset(df, select = -c(a,c) ) #去除列a和c
R語言常用函數(shù)整理本篇是基礎(chǔ)篇,即R語言自帶的函數(shù)。
vector:向量
numeric:數(shù)值型向量
logical:邏輯型向量
character;字符型向量
list:列表
data.frame:數(shù)據(jù)框
c:連接為向量或列表
length:求長度
subset:求子集
seq,from:to,sequence:等差序列
rep:重復
NA:缺失值
NULL:空對象
sort,order,unique,rev:排序
unlist:展平列表
attr,attributes:對象屬性
mode,class,typeof:對象存儲模式與類型
names:對象的名字屬性
字符型向量 nchar:字符數(shù)
substr:取子串 format,formatC:把對象用格式轉(zhuǎn)換為字符串
paste()、paste0()不僅可以連接多個字符串,還可以將對象自動轉(zhuǎn)換為字符串再相連,另外還能處理向量。
strsplit:連接或拆分
charmatch,pmatch:字符串匹配
grep,sub,gsub:模式匹配與替換
complex,Re,Im,Mod,Arg,Conj:復數(shù)函數(shù)
factor:因子 codes:因子的編碼 levels:因子的各水平的名字 nlevels:因子的水平個數(shù) cut:把數(shù)值型對象分區(qū)間轉(zhuǎn)換為因子
table:交叉頻數(shù)表 split:按因子分組 aggregate:計算各數(shù)據(jù)子集的概括統(tǒng)計量 tapply:對“不規(guī)則”數(shù)組應(yīng)用函數(shù)
dev.new() 新建畫板
plot()繪制點線圖,條形圖,散點圖.
barplot( ) 繪制條形圖
dotchart( ) 繪制點圖
pie( )繪制餅圖.
pair( )繪制散點圖陣
boxplot( )繪制箱線圖
hist( )繪制直方圖
scatterplot3D( )繪制3D散點圖.
par()可以添加很多參數(shù)來修改圖形
title( ) 添加標題
axis( ) 調(diào)整刻度
rug( ) 添加軸密度
grid( ) 添加網(wǎng)格線
abline( ) 添加直線
lines( ) 添加曲線
text( ) 添加標簽
legend() 添加圖例
+, -, *, /, ^, %%, %/%:四則運算 ceiling,floor,round,signif
1、round() #四舍五入
例:x - c(3.1416, 15.377, 269.7)
round(x, 0) #保留整數(shù)位
round(x, 2) #保留兩位小數(shù)
round(x, -1) #保留到十位
2、signif() #取有效數(shù)字(跟學過的有效數(shù)字不是一個意思)
例:略
3、trunc() #取整
floor() #向下取整
ceiling() #向上取整
例:xx - c(3.60, 12.47, -3.60, -12.47)
trunc(xx)
floor(xx)
ceiling(xx)
max,min,pmax,pmin:最大最小值
range:最大值和最小值 sum,prod:向量元素和,積 cumsum,cumprod,cummax,cummin:累加、累乘 sort:排序 approx和approx fun:插值 diff:差分 sign:符號函數(shù)
abs,sqrt:絕對值,平方根
log, exp, log10, log2:對數(shù)與指數(shù)函數(shù)
sin,cos,tan,asin,acos,atan,atan2:三角函數(shù)
sinh,cosh,tanh,asinh,acosh,atanh:雙曲函數(shù)
beta,lbeta,gamma,lgamma,digamma,trigamma,tetragamma,pentagamma,choose ,lchoose:與貝塔函數(shù)、伽瑪函數(shù)、組合數(shù)有關(guān)的特殊函數(shù)
fft,mvfft,convolve:富利葉變換及卷積
polyroot:多項式求根
poly:正交多項式
spline,splinefun:樣條差值
besselI,besselK,besselJ,besselY,gammaCody:Bessel函數(shù)
deriv:簡單表達式的符號微分或算法微分
array:建立數(shù)組
matrix:生成矩陣
data.matrix:把數(shù)據(jù)框轉(zhuǎn)換為數(shù)值型矩陣
lower.tri:矩陣的下三角部分
mat.or.vec:生成矩陣或向量
t:矩陣轉(zhuǎn)置
cbind:把列合并為矩陣
rbind:把行合并為矩陣
diag:矩陣對角元素向量或生成對角矩陣
aperm:數(shù)組轉(zhuǎn)置
nrow, ncol:計算數(shù)組的行數(shù)和列數(shù)
dim:對象的維向量
dimnames:對象的維名
rownames,colnames:行名或列名
%*%:矩陣乘法
crossprod:矩陣交叉乘積(內(nèi)積)
outer:數(shù)組外積
kronecker:數(shù)組的Kronecker積
apply:對數(shù)組的某些維應(yīng)用函數(shù)
tapply:對“不規(guī)則”數(shù)組應(yīng)用函數(shù)
sweep:計算數(shù)組的概括統(tǒng)計量
aggregate:計算數(shù)據(jù)子集的概括統(tǒng)計量
scale:矩陣標準化
matplot:對矩陣各列繪圖
cor:相關(guān)陣或協(xié)差陣
Contrast:對照矩陣
row:矩陣的行下標集
col:求列下標集
solve:解線性方程組或求逆
eigen:矩陣的特征值分解
svd:矩陣的奇異值分解
backsolve:解上三角或下三角方程組
chol:Choleski分解
qr:矩陣的QR分解
chol2inv:由Choleski分解求逆
,,=,=,==,!=:比較運算符 !,,,|,||,xor():
邏輯運算符 logical:
生成邏輯向量 all,
any:邏輯向量都為真或存在真
ifelse():二者擇一 match,
%in%:查找
unique:找出互不相同的元素
which:找到真值下標集合
duplicated:找到重復元素
optimize,uniroot,polyroot:一維優(yōu)化與求根
if,else,
ifelse,
switch:
分支 for,while,repeat,break,next:
循環(huán) apply,lapply,sapply,tapply,sweep:替代循環(huán)的函數(shù)。
function:函數(shù)定義
source:調(diào)用文件 ’
call:函數(shù)調(diào)用 .
C,.Fortran:調(diào)用C或者Fortran子程序的動態(tài)鏈接庫。
Recall:遞歸調(diào)用
browser,debug,trace,traceback:程序調(diào)試
options:指定系統(tǒng)參數(shù)
missing:判斷虛參是否有對應(yīng)實參
nargs:參數(shù)個數(shù) stop:終止函數(shù)執(zhí)行
on.exit:指定退出時執(zhí)行 eval,expression:表達式計算
system.time:表達式計算計時
invisible:使變量不顯示
menu:選擇菜單(字符列表菜單)
其它與函數(shù)有關(guān)的還有:
delay,
delete.response,
deparse,
do.call,
dput,
environment ,
formals,
format.info,
interactive,
is.finite,
is.function,
is.language,
is.recursive ,
match.arg,
match.call,
match.fun,
model.extract,
name,
parse 函數(shù)能將字符串轉(zhuǎn)換為表達式expression
deparse 將表達式expression轉(zhuǎn)換為字符串
eval 函數(shù)能對表達式求解
substitute,
sys.parent ,
warning,
machine
cat,print:顯示對象
sink:輸出轉(zhuǎn)向到指定文件
dump,save,dput,write:輸出對象
scan,read.table,readlines, load,dget:讀入
ls,objects:顯示對象列表
rm, remove:刪除對象
q,quit:退出系統(tǒng)
.First,.Last:初始運行函數(shù)與退出運行函數(shù)。
options:系統(tǒng)選項
?,help,help.start,apropos:幫助功能
data:列出數(shù)據(jù)集
head()查看數(shù)據(jù)的頭幾行
tail()查看數(shù)據(jù)的最后幾行
每一種分布有四個函數(shù):
d―density(密度函數(shù)),p―分布函數(shù),q―分位數(shù)函數(shù),r―隨機數(shù)函數(shù)。
比如,正態(tài)分布的這四個函數(shù)為dnorm,pnorm,qnorm,rnorm。下面我們列出各分布后綴,前面加前綴d、p、q或r就構(gòu)成函數(shù)名:
norm:正態(tài),
t:t分布,
f:F分布,
chisq:卡方(包括非中心)
unif:均勻,
exp:指數(shù),
weibull:威布爾,
gamma:伽瑪,
beta:貝塔
lnorm:對數(shù)正態(tài),
logis:邏輯分布,
cauchy:柯西,
binom:二項分布,
geom:幾何分布,
hyper:超幾何,
nbinom:負二項,
pois:泊松
signrank:符號秩,
wilcox:秩和,
tukey:學生化極差
sum, mean, var, sd, min, max, range, median, IQR(四分位間距)等為統(tǒng)計量,
sort,order,rank與排序有關(guān),
其它還有ave,fivenum,mad,quantile,stem等。
R中已實現(xiàn)的有chisq.test,prop.test,t.test。
cor,cov.wt,var:協(xié)方差陣及相關(guān)陣計算
biplot,biplot.princomp:多元數(shù)據(jù)biplot圖
cancor:典則相關(guān)
princomp:主成分分析
hclust:譜系聚類
kmeans:k-均值聚類
cmdscale:經(jīng)典多維標度
其它有dist,mahalanobis,cov.rob。
ts:時間序列對象
diff:計算差分
time:時間序列的采樣時間
window:時間窗
lm,glm,aov:線性模型、廣義線性模型、方差分析
quo()等價于quote()
enquo()等價于substitute()