怎样才能学好电脑的R语言?

Python016

怎样才能学好电脑的R语言?,第1张

R语言快速入门:数据结构+生成数据+数据引用+读取外部数据

查看完整文档可至百度网盘:

链接: https://pan.baidu.com/s/1cEdmpO5idfxx044TpqVBuA

 

提取码: bi3t

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。常被用于统计学、计量分析等领域。接下来讲一下我个人认为的R入门知识。

目录

1 数据结构

1.1 向量

1.2 矩阵

1.3 数据框

2 生成数据

2.1 c() 连接单个数据

2.2 ":" 生成1/-1等差向量

2.3 seq() 生成等距向量

2.4 rep() 生成重复数据

3 数据引用

3.1 引用行/引用列

3.2 引用单个元素

3.3 引用子矩阵

3.4 变量名引用

4 读取外部数据(表)

4.1 更改工作目录

4.2 read.table

4.3 read.csv

正文 1 数据结构

本节主要讲向量、矩阵、数据框三种数据结构(入门必须学)

1.1 向量

用于存储数值型、字符型或逻辑型数据的一维数组,常用"c()"创建。例如:

> c(1,2,8)#生成包含1,2,8的一维数组(向量)

[1] 1 2 8

1.2 矩阵

二维数组具有行列的概念

#矩阵用法

matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL) #表示生成1行,1列的一个矩阵,其中仅仅包含一个元素“NA” #---示例---#

> matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE, dimnames = list(c("row1", "row2"), c("C.1", "C.2", "C.3")))

     C.1 C.2 C.3

row1   1   2   3

row2  11  12  13

#nrow = 2和ncol = 3 定义2x3的2行3列矩阵

#byrow = TRUE 是控制矩阵中的数据c(1,2,3, 11,12,13)按照行的顺序排列,默认按照列排列

#dimnames = list(c("row1", "row2"), c("C.1", "C.2", "C.3")) 定义矩阵行名和列名

1.3 数据框

主要用于向量/矩阵合并,可以将不通类型的以向量以及矩阵,按照一定结构存储在数据框中。

> x <- c(11:20)  #其中" <- "是赋值的意思,将向量c(11:20)赋值给对象x

> y <- c(1:10)

> data.frame(xf = x, yf = x) #将向量x和y合并存储到数据框中,并重命名为xf和yf

   xf yf

1  11 11

2  12 12

3  13 13

4  14 14

5  15 15

6  16 16

7  17 17

8  18 18

9  19 19

10 20 20

数组与矩阵类似,但其维度大于2.由于R入门基本接触不到3维以上数组的概念,目前暂不展开,等入门后在反过来看。

2 生成数据

本节主要讲“c()”、":"、seq、rep等四种数据生成的内容(入门必须学)

2.1 “c”  连接单个数据

> c(1,2,8)#生成包含1,2,8的向量

2.2 “:“ 生成1/-1等差向量

> 1.1:10

[1] 1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1

> 1:10

 [1]  1  2  3  4  5  6  7  8  9 10

> 10:1 #如x=1:10(递减,如y=10:1)

 [1] 10  9  8  7  6  5  4  3  2  1

2.3 seq 生成等距向量

①seq(起点,终点,步长) 

②seq(length=9, from=1, to=5)

> seq(1,10,2)

[1] 1 3 5 7 9

> seq(length=5,1,10)

[1]  1.00  3.25  5.50  7.75 10.00

#seq(x)相当于1:length(x);length(x)为0时,返回integer(0)

> seq(10)

 [1]  1  2  3  4  5  6  7  8  9 10

> seq(c())

integer(0)

2.4 rep(x,n)   重复 

将x重复n次,可使用each限定为依次重复形式

rep(1:3,3)

rep(1:3,each=3)

#> rep(1:3,3)

#[1] 1 2 3 1 2 3 1 2 3

#> rep(1:3,each = 3)

#[1] 1 1 1 2 2 2 3 3 3

额外补充:R语言|第2讲:生成数据

3 数据引用(以矩阵为例)

数据引用必须懂“对指定维度数据的引用”(以二维矩阵为例)

3.1 行引用/列引用

例如:引用第一行数据,引用第一列数据,引用第一行第一列的数据。

> data(iris) #鸢尾花数据集> dim(iris) #读取iris数据集的维度数值,以“行数 列数 ”形式展示[1] 150   5   #说明iris数据集是150 x 5的二维数组

3.2 行列值引用:数据集[行值,列值]

如行值或列值仅1个数字,表示仅引用该行或列的数据

> iris[1,]  #引用第1行数据

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1          5.1         3.5          1.4         0.2  setosa

> head(iris[,1],5) #引用第1列的数据,其中因数据过长,使用head()函数取前5个数字

[1] 5.1 4.9 4.7 4.6 5.0

3.3 引用子矩阵

如行值或列值为组合数据,则表示引用组合行列交叉位置的数据

> iris[1:5,1:3]

  Sepal.Length Sepal.Width Petal.Length

1          5.1         3.5          1.4

2          4.9         3.0          1.4

3          4.7         3.2          1.3

4          4.6         3.1          1.5

5          5.0         3.6          1.4

3.4 变量名引用

(多用于二维数组中):数据集$变量名

> head(iris$Petal.Length,5)

[1] 1.4 1.4 1.3 1.5 1.4 4 读取外部数据(以.csv表为例)

本节主要讲如何读取外部数据(表)(以.csv表为例)

4.1 设置工作目录

R语言中数据的输入需要设置数据读取的路径,一般将数据文件放到工作目录下,这样直接就可以通过read.table等读取数据文档(不许要设置路径)。

setwd("E:/")  #设置当前工作目录为"E:/"

getwd()  #读取当前工作空间的工作目录(文件读取保存路径)

> getwd()  #读取当前工作空间的工作目录(文件读取保存路径)

[1] "C:/Users/ysl/Documents"

> setwd("E:/") #设置当前工作目录为"E:/"

> getwd() #再次使用getwd()函数即可查看是否设置成功

[1] "E:/"

方法二:通过R-gui菜单栏设置(文件-改变工作目录)

4.2 read.table() 

#读取带分隔符的文本文件。read.table()函数是R最基本函数之一,读取带分隔符的文本/表格文件。

#Usage

read.table(file, header = FALSE, sep = "", quote = "\"'",

           dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),

           row.names, col.names, as.is = !stringsAsFactors,

           na.strings = "NA", colClasses = NA, nrows = -1,

           skip = 0, check.names = TRUE, fill = !blank.lines.skip,

           strip.white = FALSE, blank.lines.skip = TRUE,

           comment.char = "#",

           allowEscapes = FALSE, flush = FALSE,

           stringsAsFactors = default.stringsAsFactors(),

           fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)

read.csv(file, header = TRUE, sep = ",", quote = "\"",

dec = ".", fill = TRUE, comment.char = "", ...)

read.csv2(file, header = TRUE, sep = "", quote = "\"",

dec = ",", fill = TRUE, comment.char = "", ...)

read.delim(file, header = TRUE, sep = "\t", quote = "\"",

dec = ".", fill = TRUE, comment.char = "", ...)

read.delim2(file, header = TRUE, sep = "\t", quote = "\"",

            dec = ",", fill = TRUE, comment.char = "", ...)

常用参数的说明如下:

(1)file:file是一个带分隔符的ASCII文本文件。①绝对路径或者相对路径。一定要注意,在R语言中\是转义符,所以路径分隔符需要写成"\\"或者“/”。所以写成“C:\\myfile\\myfile.txt”或者“C:/myfile/myfile.txt”即可。②使用file.choose(),弹出对话框,自动选择文件位置。例如:read.table(file.choose(),...)。

(2)header:一个表示文件是否在第一行包含了变量的逻辑型变量。如果header设置为TRUE,则要求第一行要比数据列的数量少一列。

(3)sep分开数据的分隔符。默认sep=""。read.table()函数可以将1个或多个空格、tab制表符、换行符或回车符作为分隔符。常见空白分隔符有:空格,制表符,换行符

sep=” ”;sep = “\t”;sep = “\n”

(4)stringsAsFactors 逻辑值,标记字符向量是否需要转化为因子,默认是TRUE。stringsAsFactors = F意味着,“在读入数据时,遇到字符串之后,不将其转换为factors,仍然保留为字符串格式”。

(5)encoding 设定输入字符串的编码方式。

#读取txt文档

> df<- read.table("data.txt")

> df

V1 V2

1  x  y

2  1  2

3  3  4

4  5  6

> df <- read.table("data.txt",header = T)

> df

x y

1 1 2

2 3 4

3 5 6

#样式1:直接读取数据

> df <- read.table("data.csv")  #直接读取数据

> head(df)

V1

1 ID,Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species

2                                     1,5.1,3.5,1.4,0.2,setosa

3                                       2,4.9,3,1.4,0.2,setosa

4                                     3,4.7,3.2,1.3,0.2,setosa

5                                     4,4.6,3.1,1.5,0.2,setosa

6                                       5,5,3.6,1.4,0.2,setosa

#样式2:读数+首行表头

> df <- read.table("data.csv",header = T)  #读数+首行表头

> head(df)

ID.Sepal.Length.Sepal.Width.Petal.Length.Petal.Width.Species

1                                     1,5.1,3.5,1.4,0.2,setosa

2                                       2,4.9,3,1.4,0.2,setosa

3                                     3,4.7,3.2,1.3,0.2,setosa

4                                     4,4.6,3.1,1.5,0.2,setosa

5                                       5,5,3.6,1.4,0.2,setosa

6                                     6,5.4,3.9,1.7,0.4,setosa

#样式3:读数+首行表头+","逗号分割

> df <- read.table("data.csv",header = T,sep=",")  

#读数+首行表头+","逗号分割

> head(df)

ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1  1          5.1         3.5          1.4         0.2  setosa

2  2          4.9         3.0          1.4         0.2  setosa

3  3          4.7         3.2          1.3         0.2  setosa

4  4          4.6         3.1          1.5         0.2  setosa

5  5          5.0         3.6          1.4         0.2  setosa

6  6          5.4         3.9          1.7         0.4  setosa

> summary(df)

ID          Sepal.Length    Sepal.Width     Petal.Length  

Min.   :  1.00   Min.   :4.300   Min.   :2.000   Min.   :1.000  

1st Qu.: 38.25   1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600  

Median : 75.50   Median :5.800   Median :3.000   Median :4.350  

Mean   : 75.50   Mean   :5.843   Mean   :3.057   Mean   :3.758  

3rd Qu.:112.75   3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100  

Max.   :150.00   Max.   :7.900   Max.   :4.400   Max.   :6.900  

Petal.Width          Species  

Min.   :0.100   setosa    :50  

1st Qu.:0.300   versicolor:50  

Median :1.300   virginica :50  

Mean   :1.199                  

3rd Qu.:1.800                  

Max.   :2.500

#样式4:读数+首行表头+","逗号分割+字符转因子factor

> df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)

##读数+首行表头+","逗号分割+字符转因子factor

> head(df)

ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1  1          5.1         3.5          1.4         0.2  setosa

2  2          4.9         3.0          1.4         0.2  setosa

3  3          4.7         3.2          1.3         0.2  setosa

4  4          4.6         3.1          1.5         0.2  setosa

5  5          5.0         3.6          1.4         0.2  setosa

6  6          5.4         3.9          1.7         0.4  setosa

 #请注意species结果与样式3中结果的差异

> summary(df) 

ID          Sepal.Length    Sepal.Width     Petal.Length  

Min.   :  1.00   Min.   :4.300   Min.   :2.000   Min.   :1.000  

1st Qu.: 38.25   1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600  

Median : 75.50   Median :5.800   Median :3.000   Median :4.350  

Mean   : 75.50   Mean   :5.843   Mean   :3.057   Mean   :3.758  

3rd Qu.:112.75   3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100  

Max.   :150.00   Max.   :7.900   Max.   :4.400   Max.   :6.900  

Petal.Width          Species  

Min.   :0.100   setosa    :50  

1st Qu.:0.300   versicolor:50  

Median :1.300   virginica :50  

Mean   :1.199                  

3rd Qu.:1.800                  

 Max.   :2.500

4.3 read.csv()  

#读取.csv格式数据,read.table的一种特定应用。read.csv() 读取逗号分割数据文件,read.table()的一种特定应用。默认逗号分割,header=T,stringsAsFactor = T

df <- read.csv("data.csv") #等价与下df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)#第一行和第二行等价

read.csv(file, header = TRUE, sep = ",", quote = "\"", 

dec = ".", fill = TRUE, comment.char = "", ...)

#实例

> df <- read.csv("data.csv") 

#相当于df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)

> head(df)

ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1  1          5.1         3.5          1.4         0.2  setosa

2  2          4.9         3.0          1.4         0.2  setosa

3  3          4.7         3.2          1.3         0.2  setosa

4  4          4.6         3.1          1.5         0.2  setosa

5  5          5.0         3.6          1.4         0.2  setosa

6  6          5.4         3.9          1.7         0.4  setosa

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

V1V2V3

1class sexscore

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 sexscore

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=http://www.the-data-mine.com/bin/view/Misc/WebHome

/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取值向量) {

表达式…

}

1. 向量 Vector

    向量是用于储存数值型、字符型或逻辑型数据的一维数组。执行组合功能能的函数 可用来创建向量。

单个向量中的数据必须拥有相同的类型或模式(即数值型、字符型或逻辑型)。同一向量中无法混杂不同模式的数据。

2. 矩阵 Matrix

    矩阵是一个二维数组,知识每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通过函数 创建矩阵。

3. 数组 Array

    数组与矩阵类似,但是维度可以大于2。数组可通过 函数创建。

    数组是矩阵的一个自然推广。它们在编写新的统计方法时很有用。像矩阵一样,数组中的数据也只能拥有一种模式。从数组中选取元素的方法与矩阵相同。

4. 数据框 Data Frame

    这是R语言最常用的数据类型。不同的列可以包含不同模式的数据。每一列数据的模式必须相同,且必须等长。数据框可通过函数 创建。

5. 列表 List

    列表是一些对象(或成分)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。例如,某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。可以使用函数 创建列表。

    许多R的运行结果都是以列表的形式返回的。需要取出其中哪些成分由分析人员决定。