重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。
章丘网站建设公司成都创新互联公司,章丘网站设计制作,有大型网站制作公司丰富经验。已为章丘上千余家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的章丘做网站的公司定做!
与其说R是一种统计软件,还不如说R是一种数学计算的环境,因为R并不是仅仅提供若干统计程序、使用者只需指定数据库和若干参数便可进行一个统计分析。R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。
该语言的语法表面上类似 C,但在语义上是函数设计语言(functional programming language)的变种并且和Lisp以及APL有很强的兼容性。特别的是,它允许在“语言上计算”(computing on the language)。这使得它可以把表达式作为函数的输入参数,而这种做法对统计模拟和绘图非常有用。
R是一个免费的自由软件,它有UNIX、LINUX、MacOS和WINDOWS版本,都是可以免费下载和使用的。在那儿可以下载到R的安装程序、各种外挂程序和文档。在R的安装程序中只包含了8个基础模块,其他外在模块可以通过CRAN获得。
R的源代码可自由下载使用,亦有已编译的执行档版本可以下载,可在多种平台下运行,包括UNIX(也包括FreeBSD和Linux)、Windows和MacOS。 R主要是以命令行操作,同时有人开发了几种图形用户界面。
R内建多种统计学及数字分析功能。因为S的血缘,R比其他统计学或数学专用的编程语言有更强的物件导向(面向对象程序设计)功能。
R的另一强项是绘图功能,制图具有印刷的素质,也可加入数学符号。
虽然R主要用于统计分析或者开发统计相关的软体,但也有人用作矩阵计算。其分析速度可媲美GNU Octave甚至商业软件MATLAB。
R的功能能够通过由用户撰写的套件增强。增加的功能有特殊的统计技术、绘图功能,以及编程界面和数据输出/输入功能。这些软件包是由R语言、LaTeX、Java及最常用C语言和Fortran撰写。下载的执行档版本会连同一批核心功能的软件包,而根据CRAN纪录有过千种不同的软件包。其中有几款较为常用,例如用于经济计量、财经分析、人文科学研究以及人工智能。
用法:assign(x, value, pos = -1, envir = as.environment(pos), inherits = FALSE, immediate = TRUE)
assign函数在循环时候,给变量赋值。
举例说明:
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函数可用于字符串连接
用法:paste (..., sep = " ", collapse = NULL),分隔符默认为空格
我们简单举个例子
1)paste("a","b") ##能连接a b
[1] "a b"
paste("a","b","c")
[1] "a b c"
2)设置分隔符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参数
谢益辉大佬说这个参数引无数英雄竞折腰啊,大家只会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函数的区别
paste0函数,默认sep=""是两个函数唯一的区别
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) ##超出范围后继续从前向后连接
[1] "a 1" "b 2" "c 3" "a 4" "b 5"
paste0(c("a","b","c"),1:3)#默认元素连接为sep=""
[1] "a1""b2""c3"
用法:unlist()函数的作用,就是将list结构的数据du,变zhi成非list的数据,即将list数据变成 字符串向量 或者数字向量的形式
如果是向量的话就直接输出向量
例子:
%in%相当于match()函数的一个缩写。用来判断一个数组或矩阵是否包含在另一个数组或矩阵里。举个例子一目了然:
#首先复制两个变量a和b
a - 1:5
b - 3:7
a %in% b #看a的元素是否包含在b中输出结果如下:
[1] FALSE FALSE TRUE TRUE TRUE
用法:apply(x, MARGIN, FUN, ...)
作用:对 矩阵 的行或列使用函数,或者对 数组 的各个维度使用函数
x为数据对象,MARGIN是维度的下标,MARGIN=1表示行,MARGIN=2表示列,FUN是自己指定的任意或自定义函数
注:数据框dataframe也可以使用apply函数,该函数会自动将数据框转化为矩阵,但前提是数据框中各列的数据类型 必须是数值型,否则会报错。
用法:lapply(x,FUN,...)
作用:对列表中的各个元素使用函数
x是格式为列表的数据源,FUN是任意函数。
intersect(data1,data2):交集
union(data1,data2):并集
R语言数据对象与运算
R语言数据对象与运算 笔记整理
2.1 数据对象及类型
R语言创建和控制的实体被称为对象(object)
ls()命令来查看当前系统里的数据对象
R对象的名称必须以一个英文字母打头,并由一串大小写字母、数字或钟点组成
注意:R区分大小写
不要用R的内置函数名称作为数据对象的名称,如c、length等
2.2 数据对象类型
R语言的对象包括
数值型(numeric):实数, 可写成整数(integers)、小数(decimal fractions)、科学记数(scientific notation)
逻辑型(logical):T(true)或F(FALSE)
字符型(character):夹在" "或之间
复数型(complex):形如a+bi
原味型(raw):以二进制形式保存数据
缺省型(missing value):有些统计资料是不完整的,当一个元素或值在统计的时候是“不可得到(not available)”或“缺失值(missing value)”的时候,相关位置可能会被保留并赋予一个特定的NA(not available)值,任何NA的运算结果都是NA。
辨别和转换数据对象类型的函数:
辨别 转换
character is.character() as,character()
complex
double
integer
logical
NA
numeric
2.3 数据对象构造
R语言里的数据对象主要有六种构造:向量(vector)、矩阵(matrix)、数组(array)、列表(list)、数据框(data frames)、因子(factor)
2.3.1 向量(vector)是由有相同基本类型元素组成的序列,相当于一维数组
5个数值组成的向量x,这是一个用函数c()完成的赋值语句,这里c()可以有任意多个参数,而它输出的值则是一个把这些参数首尾相连形成的一个向量
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()函数对向量进行赋值
length():可返回向量的长度
mode()可返回向量的数据类型
正则序列 用 “:”符号,可产生有规律的正则序列(: 的运算级别最高)
函数seq()产生有规律的各种序列
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
有时关注的是数列的长度,利用句法: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表示重复的次数
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中的内置函数:
mean()来示向量的均值
median()求是位数
var()求方差
sd()求标准差
sort()对向量排序
rev()将向量按原方向的反方向排列
rank()给求出向量的秩
prod()求向量连乘积
append()为向量添加元素
对向量运算常见函数表
函数 用途
sum() 求和
max() 求最大值
min() 求最小值
range() 求极差(全矩)
mean() 求均值
median 求中位数
var() 求方差
sd() 求标准差
sort() 排序
rev() 反排序
rank() 求秩
append() 添加
replace() 替换
match() 匹配
pmatch() 部分匹配
all() 判断所有
any() 判断部分
prod() 积
2.3.2 矩阵
矩阵(matrix)是将数据用行和列排列的长方形表格,它是二维的数组,其单元必须是相同的数据类型,通常用列来表示不同的变量,用行表示各个对象。
其句法是:
matrix(data=NA,ncol=1,byrow-=FALSE,dimnames=NULL)
data是必须的,其它几个选择参数。
nrow表示矩阵的行数
ncol表示矩阵的列数
byrow默认为FALSE,表示矩阵按列排列,如设置为T,表示按行排列;
dimnames可更改矩阵行列名字
diag()函数生成对角矩阵
diag()这个函数比较特别,当数据是向量时则生成对角矩阵,但当数据是矩阵时,则返回对角元素
也可用函数diag()生成单位矩阵
当我们生成了某个矩阵后,若要访问矩阵的某个元素或某行(列),可以利用形如A[i,j]的形式得到相应的索引矩阵
矩阵可进行相应的加减乘除运算,但运算过程中要注意行数和列数的限制条件
R里A*B并不是表示矩阵相乘,只表示矩阵对应的元素相乘
矩阵相乘应用A%*%B
dim()返回矩阵的行数和列数
nrow()返回矩阵的行数
ncol()返回矩阵的列数
solve()返回矩阵的逆矩阵
对矩阵运算的常见函数
函数 用途
as.matrix() 把非矩阵的转换成矩阵
is.matrix() 辨别是否矩阵
diag() 返回对角元素或生成对角矩阵
eigen() 求特征值和特征向量
solve() 求逆矩阵
chol() Choleski分解
svd() 奇异值分解
qr() QR分解
det() 求行列式
dim() 返回行列数
t() 矩阵转置
apply() 对矩阵应用函数
R语言还提供了专门针对矩阵的行或列计算的函数
如 colSUms()对矩阵各列求和 colMeans()求矩阵各列的均值
类似的有 rowSums()rowMeans()
更一般的方法:
apply()函数来对各行各列进行运算
句法是:apply(X,MARGIN,FUN,……)
X表示要处理的数据
MARGIN表示函数作用的范围
取1表示对行运用函数
取2表示对列运用函数
FUN表示要运用的函数
rbind()、cbind()将两个或两个以上的矩阵合并起来
rbind()表示按行合并,cbind()则表示按列合并
2.3.3 数组
数组(array)可以看作是带有多个下标的类型相同的元素的集合。
数组的生成函数是array(),其句法是
array(data=NA,dim=length(data),dimnames-NULL)
data表示数据,可以为空
dim 表示维数
dimnames可以更改数组难度的名称
2.3.4 列表
向量、矩阵和的单元必须是同一类型的数据,若一个数据对象需要含有不同的数据类型,可采用列表(list)这种数据对象的形式。
列表是一个对象的有序集合构成的对象,列表中包含的对象又称为它的分量(components),分量可以是不同的模式或(和)类型
语法式为:list (变量1=分量1,变量2=分量2,……)
若要访问列表的某一成分,可以用LST[[1]],LST[[2]]的形式访问
因分量可以被命名,故可以在列表名称后加$符号,再写上成分名称来访问列表分量
函数length()、mode()、names()可以分别返回列表的长度(分量的数目)、数据类型、列表里成分的名字
2.3.5 数据框
数据框(data frame)是一种矩阵形式的数据,但数据框中各列可以是不同类型的数据。数据框每列是一个变量,每行是一个观测 。
对可能列入数据框中的列表有如下的一些限制:
1.分量必须是向量(数值,字符,逻辑),因子,数值矩阵,列表或者其他数据框。
2.矩阵,列表和数据框为新的数据框提供了尽可能多的变量,因为它们各自拥有列、元素或者变量。
3.数值向量、逻辑值、因子保持原有格式,而字符向量会被强制转换成因子并且它的水平就是向量中出现的独立值。
4.在数据框中以变量形式出现的向量结构必须长度一致,矩阵结构必须有一样的行数。
R中用函数data.frame()生成数据框,其句法是:data.frame(data1,data2,……)
数据框的列名默认为变量名,也可对列名进行重新命名
也可以对数据框的行名进行修改
2.3.6 因子和有序因子
分类型数据经常要把数据分成不同的水平或因子(factor)
生成因子的命令是factor(),其句法是:factor(data,levels,labels,……)
其中data表示数据
levels是因子水平向量
labels是因子的标签向量
levels,labels是备选项,可以不选
若上面的每个因子并不表示因子的大小,要表达因子之间有大小顺序(考虑因子之间的顺序),则可以用 ordered()函数产生
2.4 数据的录入及编辑
c函数:c函数是把各个值联成一个向量或列表,可以形成数值型向量、字符型向量或其它类型向量
scan函数:功能类似于c函数,实际上是一种键盘输入数据函数。当输入scan(),然后按回车键,这时将等待输入数据,数据之间只要空格分开即可(c函数要用逗号分开)。输入完数据,再按回车键,这时数据录入完毕。
scan函数还可以读入外部文本文件,若现有一个文本文件,data.txt,读入这个文件的命令是: x=scan(file="dat.txt")
若原文件的数据之间有逗号等分隔符,用scan读入应该去掉这些分隔符,其命令是: x=scan(file="dat.txt",sep=",")
编辑数据
data.entry命令
xx原先未被定义,现在赋予其一个空值,这时会出现一个电子表格界面,等待输入数据: data.entry(xx=c(NA))
当电子表格关闭后,数据会自动保存
edit命令用来编辑函数,也可用来编辑数据,但不会自动保存
fix函数与edit类似,但它可以自动保存
从外部文件读入数据
从文本文件读取:
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
读入表格数据的命令是: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
从网络读入数据
url可以从网页上读入正确格式的数据,要借助read.table函数
address=
/sample.txt
read.table(file=url(address))
读入其他格式的数据库
要读入其他格式的数据库,必须先安装"foreign"模块,它不属于R的8个内置模块,需在使用前安装。 library(foreign)
SAS:R只能诗篇SAS Transport format(XPORT)文件,需要把普通的SAS数据文件(.ssd和.sas7bdat)转换成Transport format(XPORT)文件,再用命令:read.xport()
SPSS数据库:read.spss()可读入SPSS数据文件
Epi info数据库:
要给数据集一个名字,则是;read.epiinfo("文件名.rec")-名称
Stata数据库:
R可读入Stata5,6,7的数据库
读入数据文件后,使用数据集名$变量名,即可使用各个变量
read.dta(“文件名.dta”)
读入数据文件后,使用数据集名$变量名,即可使用各个变量。
mean(data$age)
便是计算数据集 data中的变量age的均数。
2.5 函数、循环与条件表达式
2.5.1 编写函数
句法是:
函数名 = function (参数1,参数2…)
{
函数体
函数返回值
}
对于这类只有一个算术式的简单函数,也要不要{}
mean(data$age)
便是计算数据集 data中的变量age的均数。
若不使用圆括号,直接输入函数名,按回车键将显示函数的定义式:
单参数:使函数个性化,可使用单参数,函数将会根据参数的不同,返回值不同
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"
默认参数:即不输入任何参数
函数的默认参数
welcome.sb=function(names="Mr fang")print(paste("welcome",
names,"to use R"))
welcome.sb()
[1] "welcome Mr fang to use R"
当函数体的表达式超过一个时,要用{}封起来
2.5.2 for循环
for循环的句法是:
for (变量 in取值向量) {
表达式…
}
c本身在这里应该是“combine”的首字母,用于合并一系列数字从而形成向量/数列。
1、向量是用于存储数值型,字符型或者逻辑型数据的一维数组。执行组合功能的函数为c(),可以用来创建向量。向量可根据位置进行索引,需要用[]。
2、矩阵是一个二维数组,每个元素都拥有相同的模式,可通过函数matrix()创建矩阵。
3、数组是一个可以在两个以上维度存储数据的数据对象。例如,如果创建尺寸(2,3,4)的数组,那么就是创建4个矩形矩阵每个2行3列。数组只能存储数据类型。
4、矩阵和数组一样都只能包含一种数据类型,当有多种模式的数据时,使用数据框就更为方便。数据框可以用函数data.frame () 创建。
5、$ 被用来选取一个给定数据框中的某个特定变量。
6、attach()绑定数据集,detach()解除数据集。
7、with:attach,detach最好在单独的数据框内使用,在多个同名对象最好不要使用,函数with(),可以再具有多个同名对象的数据框内使用,但是必须加入花括号{},这样就无须担心名称冲突了,但是它也有局限性,赋值仅在此函数的括号内生效。
8、列表是一些对象的有序集合。
9,、数据导入 read.table(),其中header = T,代表第一行为变量名称,不作为数据,header = F相反。sep代表数据分隔符,txt为"\t",csv为","。
10、table函数,用 table() 函数统计因子各水平的出现次数(称为频数或频率)。
sex = c("女","女","女","男","男")
table(sex)
sex
男 女
2 3
求众数
aim = table(sex)[table(sex)==max(table(sex))]
aim
女
3
max(table(sex))
[1] 3
table(sex)==max(table(sex))
sex
男 女
FALSE TRUE
11、 无尺度网络: 是指在某一复杂的 系统 中,大部分节点只有少数几个连结,而某些节点却拥有与其他节点的大量连结。这些具有大量连结的节点称为“集散节点”,所拥有的连结可能高达数百、数千甚至数百万。这一特性说明该网络是无尺度的,因此,凡具有这一特性的网络都是无尺度网络。
12、options(stringsAsFactors = F)
#在调用as.data.frame的时,将stringsAsFactors设置为FALSE可以避免character类型自动转化为factor类型。
13、class():查看数据结构:vector、matrix、array、dataframe、list。
14、str():作用用英语来表示是:check classification of viriables,一般用于检查数据框当中有哪些数据。
15、mode() :查看数据元素类型。
16、typeof() :查看数据元素类型,基本等同于mode(),比mode()更为详细。
17、example():假设有一个函数foo,example("foo"),函数foo的使用示例。
18、apropos():列出名称中含有foo的所有可用函数。apropos("foo",mode="function")。
19、data():列出当前已加载包中所含的所有可用示例数据集。
20、ls():列出当前工作空间中的对象。
21、rm():移除(删除)一个或多个对象。
22、history(#):显示最近使用过的#个命令(默认值为25)。
23、options():显示或设置当前选项。有一个收藏文件有介绍options的功能。
24、boxplot():生成盒型图。
25、sum():计算和。sum(x,na.rm = TRUE)。
26、median():计算中位数。
27、cbind():以列结合变量。cbind(x,y,z)。
28、rbind():以行结合变量。
29、vector():以向量形式结合数据。vector(length = 10)。
30、rep():以矩阵形式结合数据。rep(c(1,,2,3),each = 10)
31、seq():生成一个有序的数列。seq(1,10)。
32、dim():矩阵或者cbind输出的维数。dim(Mydata)。
33、scan():从ascii文件中读取数据。scan(file = "test.txt")。
34、write.table():把一个变量写入到ascii文件。write.table(Z,file = "test.txt")。
35、order():确定数据的顺序。order(x)。
36、merge():合并两个数据框。merge(x,y,by = "ID")。
37、str():显示一个对象的内部结构。str(Mydata)。
38、factor():定义变量作为因子。factor(x)。
39、tapply():tapply(X = Veg$R,INDEX = Veg$Transect,FUN = mean).tapply函数根据第二个变量(Transect)的不同水平对第一变量(R)进行了求平均值运算。还可以求sd,var,length等操作。R语言初学者指南P75详细介绍了这个函数。
40、下一页介绍了sapply和lapply。
41、summary():计算基本信息。
42、table():计算列联表,统计因子各水平的出现次数(频数或频率)。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选项指定每个图形周围空白的大小,底部、左侧、顶部、右侧。
45、paste():将变量连接成字符串。paste("a","b",sep = "")。
46、log(): log = "x",log = "y",log = "xy",生成对数轴。
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
# 返回内容#
[1] TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# 取反操作
!(a%in%b)
48、sort()函数是对向量进行从小到大的排序
rank()函数返回的是对向量中每个数值对应的秩
order()函数返回的值表示位置,依次对应的是向量的最小值、次小值、第三小值……最大值等(位置索引)
arrange()函数(需加载dplyr包)针对数据框,返回基于某列排序后的数据框,方便多重依据排序。
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语言常用函数整理本篇是基础篇,即R语言自带的函数。
vector:向量
numeric:数值型向量
logical:逻辑型向量
character;字符型向量
list:列表
data.frame:数据框
c:连接为向量或列表
length:求长度
subset:求子集
seq,from:to,sequence:等差序列
rep:重复
NA:缺失值
NULL:空对象
sort,order,unique,rev:排序
unlist:展平列表
attr,attributes:对象属性
mode,class,typeof:对象存储模式与类型
names:对象的名字属性
字符型向量 nchar:字符数
substr:取子串 format,formatC:把对象用格式转换为字符串
paste()、paste0()不仅可以连接多个字符串,还可以将对象自动转换为字符串再相连,另外还能处理向量。
strsplit:连接或拆分
charmatch,pmatch:字符串匹配
grep,sub,gsub:模式匹配与替换
complex,Re,Im,Mod,Arg,Conj:复数函数
factor:因子 codes:因子的编码 levels:因子的各水平的名字 nlevels:因子的水平个数 cut:把数值型对象分区间转换为因子
table:交叉频数表 split:按因子分组 aggregate:计算各数据子集的概括统计量 tapply:对“不规则”数组应用函数
dev.new() 新建画板
plot()绘制点线图,条形图,散点图.
barplot( ) 绘制条形图
dotchart( ) 绘制点图
pie( )绘制饼图.
pair( )绘制散点图阵
boxplot( )绘制箱线图
hist( )绘制直方图
scatterplot3D( )绘制3D散点图.
par()可以添加很多参数来修改图形
title( ) 添加标题
axis( ) 调整刻度
rug( ) 添加轴密度
grid( ) 添加网格线
abline( ) 添加直线
lines( ) 添加曲线
text( ) 添加标签
legend() 添加图例
+, -, *, /, ^, %%, %/%:四则运算 ceiling,floor,round,signif
1、round() #四舍五入
例:x - c(3.1416, 15.377, 269.7)
round(x, 0) #保留整数位
round(x, 2) #保留两位小数
round(x, -1) #保留到十位
2、signif() #取有效数字(跟学过的有效数字不是一个意思)
例:略
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:符号函数
abs,sqrt:绝对值,平方根
log, exp, log10, log2:对数与指数函数
sin,cos,tan,asin,acos,atan,atan2:三角函数
sinh,cosh,tanh,asinh,acosh,atanh:双曲函数
beta,lbeta,gamma,lgamma,digamma,trigamma,tetragamma,pentagamma,choose ,lchoose:与贝塔函数、伽玛函数、组合数有关的特殊函数
fft,mvfft,convolve:富利叶变换及卷积
polyroot:多项式求根
poly:正交多项式
spline,splinefun:样条差值
besselI,besselK,besselJ,besselY,gammaCody:Bessel函数
deriv:简单表达式的符号微分或算法微分
array:建立数组
matrix:生成矩阵
data.matrix:把数据框转换为数值型矩阵
lower.tri:矩阵的下三角部分
mat.or.vec:生成矩阵或向量
t:矩阵转置
cbind:把列合并为矩阵
rbind:把行合并为矩阵
diag:矩阵对角元素向量或生成对角矩阵
aperm:数组转置
nrow, ncol:计算数组的行数和列数
dim:对象的维向量
dimnames:对象的维名
rownames,colnames:行名或列名
%*%:矩阵乘法
crossprod:矩阵交叉乘积(内积)
outer:数组外积
kronecker:数组的Kronecker积
apply:对数组的某些维应用函数
tapply:对“不规则”数组应用函数
sweep:计算数组的概括统计量
aggregate:计算数据子集的概括统计量
scale:矩阵标准化
matplot:对矩阵各列绘图
cor:相关阵或协差阵
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:一维优化与求根
if,else,
ifelse,
switch:
分支 for,while,repeat,break,next:
循环 apply,lapply,sapply,tapply,sweep:替代循环的函数。
function:函数定义
source:调用文件 ’
call:函数调用 .
C,.Fortran:调用C或者Fortran子程序的动态链接库。
Recall:递归调用
browser,debug,trace,traceback:程序调试
options:指定系统参数
missing:判断虚参是否有对应实参
nargs:参数个数 stop:终止函数执行
on.exit:指定退出时执行 eval,expression:表达式计算
system.time:表达式计算计时
invisible:使变量不显示
menu:选择菜单(字符列表菜单)
其它与函数有关的还有:
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 函数能将字符串转换为表达式expression
deparse 将表达式expression转换为字符串
eval 函数能对表达式求解
substitute,
sys.parent ,
warning,
machine
cat,print:显示对象
sink:输出转向到指定文件
dump,save,dput,write:输出对象
scan,read.table,readlines, load,dget:读入
ls,objects:显示对象列表
rm, remove:删除对象
q,quit:退出系统
.First,.Last:初始运行函数与退出运行函数。
options:系统选项
?,help,help.start,apropos:帮助功能
data:列出数据集
head()查看数据的头几行
tail()查看数据的最后几行
每一种分布有四个函数:
d―density(密度函数),p―分布函数,q―分位数函数,r―随机数函数。
比如,正态分布的这四个函数为dnorm,pnorm,qnorm,rnorm。下面我们列出各分布后缀,前面加前缀d、p、q或r就构成函数名:
norm:正态,
t:t分布,
f:F分布,
chisq:卡方(包括非中心)
unif:均匀,
exp:指数,
weibull:威布尔,
gamma:伽玛,
beta:贝塔
lnorm:对数正态,
logis:逻辑分布,
cauchy:柯西,
binom:二项分布,
geom:几何分布,
hyper:超几何,
nbinom:负二项,
pois:泊松
signrank:符号秩,
wilcox:秩和,
tukey:学生化极差
sum, mean, var, sd, min, max, range, median, IQR(四分位间距)等为统计量,
sort,order,rank与排序有关,
其它还有ave,fivenum,mad,quantile,stem等。
R中已实现的有chisq.test,prop.test,t.test。
cor,cov.wt,var:协方差阵及相关阵计算
biplot,biplot.princomp:多元数据biplot图
cancor:典则相关
princomp:主成分分析
hclust:谱系聚类
kmeans:k-均值聚类
cmdscale:经典多维标度
其它有dist,mahalanobis,cov.rob。
ts:时间序列对象
diff:计算差分
time:时间序列的采样时间
window:时间窗
lm,glm,aov:线性模型、广义线性模型、方差分析
quo()等价于quote()
enquo()等价于substitute()