r 函数返回多个值_【软件】R语言入门之向量

R语言入门开篇,向量(vector)相关知识的介绍

R语言是一款优秀统计学编程语言,本文介绍R语言的几个重要命令,以及R语言中非常重要的一种数据结构-向量(Vector)的相关知识。

本文使用的开发工具为RGui,以">"开头的语句表示输入的命令,没有">"开头的语句是上一个语句的输出结果。

01

常用命令

   help()

help()为帮助命令,在()中输入求助的内容并执行(按下回车键),返回网页帮助文档

> help(help)

以上命令返回如下网页文档

r 函数返回多个值_【软件】R语言入门之向量_第1张图片

   ls()

ls()命令显示workspace中存储的对象名称

> ls()character(0)> x> ls()[1] "x"> y> ls()[1] "x" "y"

   rm()

rm()为删除命令,在()中输入workspace中存储的对象名称并执行,将删除workspace中该对象

> ls()[1] "x" "y"> rm(x)> ls()[1] "y"

rm(list=ls())命令能够清空workspace中所有对象

> ls()[1] "c" "e" "v" "x" "y" "z"> rm(list=ls())> ls()character(0)

02

向量(vector)

   数据对象的简单说明

R语言中包含几种基本数据类型:

数值型(numeric)

字符型(character)

逻辑型(logical)

复数型(complex)

raw型

缺失型(missing value)

将上述基本数据以一定的规则组织起来形成的数据结构:

向量(vector)

矩阵(matrix)

数组(array)

因子(factor)

列表(list)

数据帧(data frame)

   向量的赋值

1)c()函数

c()函数可将()中包含的向量、数字等元素顺序连接成为一个向量

> x> x[1] 1 2 3 4 5> y> y[1] 1 2 3 4 5

2)向量的赋值表达式

可使用或assign函数赋值,前两者用于向左赋值

> x> c(1,1,1,1,1)->y> assign("z",c(2,2,2,2,2))> n=c(3,3,3,3,3)> h> x[1] 0 0 0 0 0> y[1] 1 1 1 1 1> z[1] 2 2 2 2 2> n[1] 3 3 3 3 3> h[1] 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2

   向量的算术运算

1)规则

向量之间进行算术运算时,向量中的每一个元素将进行相同的运算操作

> x[1] 1 1 1 1 1> y[1] 1 2 3 4 5> x+y[1] 2 3 4 5 6> x-y[1]  0 -1 -2 -3 -4> x+2*y[1]  3  5  7  9 11

当两个向量的长度不相同时,较短的向量以自身元素循环的形式进行补充,直至与较长的向量中元素个数一致。

> x[1]  1 -1> y[1] 0 0 0 0 0 0 0 0> x+y[1]  1 -1  1 -1  1 -1  1 -1

2)算术运算符

+ 加

- 减

* 乘

/ 除

^ 乘方

3)函数

sin() 求正弦值

cos() 求余弦值

tan() 求正切值

log() 求底数为10的对数值

exp() 求底数为e的指数

sqrt() 求平方根

sqrt(-2) 返回NaN

sqrt(-2+0i) 返回复数

> cWarning message:In sqrt(-2) : NaNs produced> c[1] NaN> x> x[1] 0+1.414214i

max() 求最大值

min() 求最小值

median() 求中位数

range() 求最大值和最小值,相当于c(min(),max())

length() 求向量中元素个数

sum() 求向量中所有元素之和

prod() 求向量中所有元素之积

mean() 求样本均值

var() 求样本方差,var(x)等价于sum((x-mean(x))^2)/(length(x)-1)

sd() 求样本标准差

quantile() 求百分位数

cov(x, y) 求向量x和y的协方差

cor(x,y) 求向量x和y的相关系数

sort() 返回递增排序后的向量

   规则序列的生成

1)":"运算符

生成间隔为1的递增或递减数列

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

2)seq()函数

seq()函数生成规则序列

seq(from=1, to=1, by=(to-from)/(length.out-1), length.out=NULL, along.with=NULL, ...)

---by  表示步长或间隔

> seq(1,10)[1]  1  2  3  4  5  6  7  8  9 10> seq(from=1,to=10,by=2)[1] 1 3 5 7 9

3)rep()函数

rep()函数生成重复序列,设置参数times或each可实现不同的重复形式

> rep(1,5)[1] 1 1 1 1 1> rep(c(1,2,3),times=2)[1] 1 2 3 1 2 3> rep(c(1,2,3),each=2)[1] 1 1 2 2 3 3

   逻辑向量

与上述介绍的数值型向量类似,R语言可以定义逻辑向量。逻辑向量的元素可以是TRUE、FALSE、NA(无效值)

1)赋值

> l> l[1]  TRUE FALSE    NA    NA FALSE

条件表达式可生成逻辑向量

> x> x_bigger_than_55> x [1]  1  2  3  4  5  6  7  8  9 10> x_bigger_than_5 [1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE

2)条件运算符

> 大于

< 小于

== 等于

>= 大于等于

<= 小于等于

!= 不等于

& 且

| 或

!非

> x1[1] 0 1> !x1[1]  TRUE FALSE> x1[1] 0 1> x2[1] 1 0> x1&x2[1] FALSE FALSE> x1|x2[1] TRUE TRUE

   缺失值

当元素是无效值或缺失值的时候,元素被赋予NA值(not avaliable的缩写)。一般情况下,作用于NA值的操作将得到NA值。

> x[1]  1  2  3 NA> x+1[1]  2  3  4 NA

is.na(x)函数逐个判断向量x中的元素是否为NA值

> x1,> is.na(x)[1] FALSE FALSE FALSE  TRUE FALSE  TRUE

R语言中还有第二类缺失值,即NaN(Not a Numbe的缩写)。is.na()函数能够不加区别地识别NA值和NaN值,is.nan()函数仅识别NaN值。

> x1,> x[1]   1   2 NaN  NA   3> is.na(x)[1] FALSE FALSE  TRUE  TRUE FALSE> is.nan(x)[1] FALSE FALSE  TRUE FALSE FALSE

   字符向量

字符型数据即包含在单引号或双引号中的一串字符

1)赋值

> x> x[1] "x"   "y"   "How" "Jun" "R"

2)转义字符

在字符型数据中,\称为转义字符,使用?Quotes命令可查看所有转义字符。

3)paste()函数

paste()函数能够逐个连接两个或多个字符向量中每一个元素

paste(..., sep="", collapse = NULL)

---...   一个或多个R对象,被转换为字符串

---sep  分隔符

> c> c[1] "1kg" "2kg" "3kg" "4kg" "5kg"> x> x[1] "Jun-1" "Jun-2" "Jun-3" "Jun-4" "Jun-5"> x> x[1] "2020-6-1" "2020-6-2" "2020-6-3" "2020-6-4" "2020-6-5"

   索引向量

向量名后加中括号,并在中括号中填入索引向量,可获得原向量的子集。

创建向量子集的表达式:vector[index_vector]

索引向量分为如下四种类型:

1)逻辑索引向量

逻辑索引向量使用逻辑值TRUE和FALSE进行索引,遇到TRUE值时取出作为子集的元素。当逻辑索引向量和原向量长度不一时,索引向量或循环补充或截断。

> x<-c(1:5)> x[1] 1 2 3 4 5> x[x>2][1] 3 4 5> index_x<-c(TRUE,FALSE)> x[index_x][1] 1 3 5> (x+2)[x>2&x<5][1] 5 6

2)正整数索引向量

正整数索引向量表示创建子集时取出该位置上的元素,正整数索引向量中元素的取值范围是{1,2,3,4,length(x)},R语言中第一个元素的位置为1。

> x<-c(1:10)> x [1]  1  2  3  4  5  6  7  8  9 10> x[5][1] 5> x[4:8][1] 4 5 6 7 8> x[rep(c(3,5),times=3)][1] 3 5 3 5 3 5

3)负整数索引向量

负整数索引向量中表示排除该元素的意思,即在创建子集时不选择负整数的绝对值位置上的元素。

> x [1]  1  2  3  4  5  6  7  8  9 10> x[-5][1]  1  2  3  4  6  7  8  9 10> x[-(2:6)][1]  1  7  8  9 10

4)字符索引向量

当向量中的元素具有名称时,可使用名称进行索引。names()函数可以为向量中的元素添加名称,名称与数字索引相比更容易记忆。

> x> names(x)"apple",> x["fish"]fish    3 > xapple   cat  fish     1     2     3

 索引赋值操作:

> x<-c(-5:5)> x [1] -5 -4 -3 -2 -1  0  1  2  3  4  5> x[x<0]<--x[x<0]> x [1] 5 4 3 2 1 0 1 2 3 4 5

03

描述性统计实践

使用某班级的身高数据作为练习的数据集,对数据集进行描述性统计。

1)输入数据:

> s176,> s [1] 176 170 173 179 170 163 168 167 178 173 172 169 178 182 165 172 174 170 166[20] 167 172 164 172 163 176 163 170 174 174 173 169 165 170 172 172 159 163 155[39] 154 156 158 161 162 165 162 163 158 160 161 162 159 156 156 162 156 157 166[58] 155 156 158 157 162 162 155 157 156 157 157

2)数值描述性度量

计算数据集的样本容量、平均值、极差、样本方差、样本标准差、最小值、下四分位数、中位数、上四分位数、最大值

> mean_s> var_s> sd_s> len_s> min_s> Q1> median_s> Q3> max_s> range_s> result_s> names(result_s)"len",> result_s       len       mean      range        var         sd        min         Q1  68.000000 165.058824  28.000000  52.951712   7.276793 154.000000 158.000000     median         Q3        max 163.500000 172.000000 182.000000

summary()函数能够一次性计算出最小值、下四分位数、中位数、样本均值、上四分位数、最大值;

fivenum()函数能够一次性计算出最小值、下四分位数、中位数、上四分位数、最大值。

> summary(s)   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.   154.0   158.0   163.5   165.1   172.0   182.0 > fivenum(s)[1] 154.0 158.0 163.5 172.0 182.0

3)直方图和箱线图

> hist(s,main="",col="pink",xlab="height (cm)",breaks=8)

r 函数返回多个值_【软件】R语言入门之向量_第2张图片

 boxplot(s,col="pink")

r 函数返回多个值_【软件】R语言入门之向量_第3张图片

  4)判断异常值

  z得分判据:abs(z)>3

> s[abs((s-mean_s)/sd_s)>3]numeric(0)

   盒子图判据:>Q3+3*(Q3-Q1) or <Q1-3*(Q3-Q1)

> s[(s>Q3+3*(Q3-Q1))|(snumeric(0)

5)判断数据的正态性

判据1:四分位间距与标准差之比IQR/s≈1.3时,数据近似正态

> (Q3-Q1)/sd_s     75% 1.923925 

判据2:正态概率图

> qqnorm(s)> qqline(s,col=2,lwd=2)

r 函数返回多个值_【软件】R语言入门之向量_第4张图片

你可能感兴趣的:(r,函数返回多个值,R语言作加权最小二乘,r语言按列合并两个向量)