R-学习笔记(基本介绍)

帮助函数

函数功能
help.start()打开帮助文档
help(“foo”)或?foo打开函数foo的帮助(引号可以省略)
help.search(“foo”)或??foo以 foo 为关键词搜索本地帮助文档
example(“foo”)函数 foo 的使用示例(引号可以省略)
RSiteSearch(“foo”)以 foo 为关键词搜索在线文档和邮件列表存档
apropos(“foo”, mode=“function”)列出名称中含有 foo 的所有可用函数
data()列出当前已加载包中所含的所有可用示例数据集
vignette()列出当前已安装包中所有可用的 vignette文档
vignette(“foo”)为主题 foo 显示指定的 vignette文档

  1. 网址:http://cran.r-project.org/ web/packages
  2. 安装:install.packages()
  3. 载入包:library()
  4. 包的简短描述以及函数:help(package=“package_name”)
用途链接
lme4[[GLMM]]R语言,GLMM 模型 ,lme4包中的 lmer()的使用_r语言lmer函数_Clark Kent 2000的博客-CSDN博客
lamle潜在变量模型的最大似然估计![[R-包-lamle.png]] ## 变量
  1. 种类:
    1. 名义型变量:无顺序区别,相互独立
    2. 有序型变量:有顺序关系,但是又不是连续的(优秀、良好、及格、不及格)
    3. 连续型变量:某个范围内的任意值

创建数据集

数据集概念

rownames(行名):实例标识符
因子(factors):类别型(包括名义型和有序型)变量、

数据集结构

  1. 对象(object)是指可以赋值给变量的任何事物
    1. 模式,描述了此对象是如何存储的
    2. 类,像print这样的泛型函数表明如何处理此对象
  2. 数据框:用于存储数据的一种结构
    1. 列:变量
    2. 行:观测

因子(factor),名义型变量或有序型变量

[[变量]]

  1. 定义:在R中名义型变量和有序性变量称为因子,factor。。这些分类变量的可能值称为一个水平,level,例如good,better,best,都称为一个level。由这些水平值构成的向量就成为因子
  2. 作用:分类计算频数之类
  3. 应用:
    1. 计算频数
    2. 独立性检验
    3. 相关性检验
    4. 方差分析
    5. 主成分分析
    6. 因子分析
title: 创建因子
~~~R
f<-factor("red","red","green","blue")
week<-factor(c("Mon","Fri","Thu","Web","Mon","Fri","Sun"),order=T,levels = c("Mon","Tue","Web","Thu","Fri","Sat","Sun"))#创建因子顺序
feyl<-factor(mtcars$cyl)#定义向量为因子

> plot(mtcars$cyl)#向量输出散点图
> plot(factor(mtcars$cyl))#输出条形图

向量

  1. 定义 :存储数值型、字符型或逻辑型数据的一维数组
  2. 函数:
    1. a<- c(1,2,4,6,-4)数值型向量
    2. b<-c(“h”,“j”,“k”)是字符型向量
    3. c<-c(TRUE,FALSE,TRUE)是逻辑型向量(可以简写为c<-c(TRUE,F,T))
    4. 同一向量无法混杂不同模式的数据
  3. 标量:只含一个元素的向量(保存常量)
    1. 示例:f<- 3
    2. 访问元素[]括号里是位置(第一个元素位置是1不是0)
      1. a <- c(“k”, “j”, “h”, “a”, “c”, “m”)

      2. a[3]

      3. “h”
      4. 生成数据序列:a[2:5]
  4. 使用冒号(:)快捷建立向量
    1. ![[R-快捷建立向量.png]]
    2. 设置等差向量seq(from=起始数字,to=结束数字,by=等差值,length.out=输出个数)
    3. 重复向量?rep
title:向量的重复
~~~R
>rep(2,5)#将2重复五次
[1] 2 2 2 2 2
> x
[1] 1 2 3 4 5
> rep(x,4)#将x重复四次
 [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
> rep(x,each=2)#将x的每个元素重复两次
 [1] 1 1 2 2 3 3 4 4 5 5
> rep(x,each=2,time=4)#将x中的每个元素重复两次,并将这种重复重复四次
 [1] 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4 5 5 1 1 2 2 3 3 4 4 5 5
 ~~~
title: 联系命令
~~~R
> a=1
>b=2
>c=3
> a;b;c#;将多个命令联系在一起
[1] 1
[1] 2
[1] 3
~~~

向量的索引

title: 向量的索引(三种方法)
```ad-R
title: 使用位置进行索引
~~~R
> x<-c(1:10)
> x[1]#R语言脚标从1开始
[1] 1
> x[-4]#删除第四位元素
[1]  1  2  3  5  6  7  8  9 10
> x[c(1:3)]#向量索引,访问1-3位置的元素
[1] 1 2 3<br>
> x[1:3]#访问1-3位置的元素
[1] 1 2 3
> x[c(1,3,-5)]#一方面要求输出1、3位置的值,又要求输出除了位置5以外的所有值,报错
Error in x[c(1, 3, -5)] : only 0#'s may be mixed with negative subscripts
> x[1,3,-5]
Error in x[1, 3, -5] : incorrect number of dimensions
~~~

```ad-R
title:使用逻辑值进行索引
~~~R
> x[c(TRUE,T,T,F,F,T,T,F,F,T)]#访问对应逻辑值为TRUE的元素
[1]  1  2  3  6  7 10
> x[c(T)]#逻辑值可以循环使用
[1]  1  2  3  4  5  6  7  8  9 10
> x[c(T,F)]
[1] 1 3 5 7 9
> X[C(T,T,F)]
Error in `contrasts<-`(`*tmp*`, how.many, value = contr) :
对比只适用于有两个或多于两个层次的因子
> x[C(T,T,F)]#R语言是大小写敏感的语言
Error in `contrasts<-`(`*tmp*`, how.many, value = contr) : 
对比只适用于有两个或多于两个层次的因子
> x[c(T,T,F)]#R语言是大小写敏感的语言
[1]  1  2  4  5  7  8 10
> x[c(T,T,T,T,F,F,T,T,F,F,F,T,T,)]#FTT为有逻辑判断但是没有元素
> Error in c(T, T, T, T, F, F, T, T, F, F, F, T, T, ) :
argument 14 is empty
> x[c(T,T,T,T,F,F,T,T,F,F,T,T,T,)]#FTT为有逻辑判断但是没有元素<br>
Error in c(T, T, T, T, F, F, T, T, F, F, T, T, T, ) : 
 argument 14 is empty
> x[c(T,T,T,T,F,F,T,T,F,F,T,T,T)]
[1]  1  2  3  4  7  8 NA NA NA
> x[c(T,T,T,T,F,F,T,T,F,F,F,T,T)]#FTT为有逻辑判断但是没有元素
[1]  1  2  3  4  7  8 NA NA
> x[c(T,T,T,T,F,F,T,T,F,F,T,T,T)]#TTT为有逻辑判断但是没有元素
[1]  1  2  3  4  7  8 NA NA NA
> x[x>5]#输出大于5的元素
[1]  6  7  8  9 10
> x[x>5 & x<9]#输出大于5,小于9的值
[1] 6 7 8
~~~

```ad-R
title: 使用元素名称访问向量
~~~R
> y<-c("1","3","5","7")
> names(y)
NULL
> names(y)<-c("a","b","c","d")
> y
  a   b   c   d 
"1" "3" "5" "7" 
> names(y)[2]<- "psy"
> y
  a psy   c   d 
"1" "3" "5" "7" 
> y["a"]
  a 
"1"
~~~
title: 向量的删减与修改
```ad-R
title: 添加
~~~R
> v<- 1:2 # 定义
> v[c(4,5)]<-7:8# 赋值,由于第3位没有被赋值,所以第三位是NA
> v
[1]  1  2 NA  7  8
> append(x=v,values=99,after=0)# 在0-1位之间/0位之后/起始插入99
[1] 99  1  2 NA  7  8
~~~
```ad-R
title: 删除
~~~R
> y
  a psy   c   d 
"1" "3" "5" "7"
> y<-y[-c(1:3)]#删除向量第1-3位元素
> y
  d 
"7"
~~~
```

```ad-R
title: 修改
~~~R
> y["d"]<-100
> y
d 
"100"
~~~

~~~R
> v
[1]  1 NA  7  8
> v[2]
[1] NA
> v[2]<-15
> v
[1]  1 15  7  8
~~~
```

向量的运算

title: 数学运算符

| 优先级 | 符号 | 含义     |
| ------ | ---- | -------- |
| 1      | ()   | 括号     |
| 2      | ^    | 乘方运算 |
| 3      | \%\% | 整数求余 |
|        | %/%  | 整除     |
| 4      | *    | 乘法     |
|        | /    | 除法     |
|        | +    | 加法     |
| 5      |      | 减法     |
title: 关系运算符
| 运算符 | 描述                                                         |
| ------ | ------------------------------------------------------------ |
| >      | 判断第一个向量的每个元素是否大于第二个向量的相对应元素。     |
| <      | 判断第一个向量的每个元素是否小于第二个向量的相对应元素。     |
| ==     | 判断第一个向量的每个元素是否等于第二个向量的相对应元素。     |
| !=     | 判断第一个向量的每个元素是否不等于第二个向量的相对应元素。   |
| >=     | 判断第一个向量的每个元素是否大于等于第二个向量的相对应元素。 |
| <=     | 判断第一个向量的每个元素是否小于等于第二个向量的相对应元素   |
title: 逻辑运算符
| 运算符 | 描述                                                                                                                                                 |    
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | 
| &      | 元素逻辑与运算符,将第一个向量的每个元素与第二个向量的相对应元素进行组合,如果两个元素都为 TRUE,则结果为 TRUE,否则为 FALSE。                       |   
| |     | 元素逻辑或运算符,将第一个向量的每个元素与第二个向量的相对应元素进行组合,如果两个元素中有一个为 TRUE,则结果为 TRUE,如果都为 FALSE,则返回 FALSE。 | 
| !      | 逻辑非运算符,返回向量每个元素相反的逻辑值,如果元素为 TRUE 则返回 FALSE,如果元素为 FALSE 则返回 TRUE。                                             |   
| &&     | 逻辑与运算符,只对两个向量对第一个元素进行判断,如果两个元素都为 TRUE,则结果为 TRUE,否则为 FALSE。 (适用于逻辑向量)                                                |   
|  \|\|       | 逻辑或运算符,只对两个向量对第一个元素进行判断,如果两个元素中有一个为 TRUE,则结果为 TRUE,如果都为 FALSE,则返回 FALSE。(适用于逻辑向量) |
title: 赋值运算符
| 运算符 | 描述 |
| ------ | ---- |
|<− <br> = <br> \<\<−|向左赋值。
|−><br> −>>|向右赋值
title: 其他运算符
| 运算符 | 描述                                                                    |
| ------ | ----------------------------------------------------------------------- |
| :      | 冒号运算符,用于创建一系列数字的向量。                                  |
| %in%   | 用于判断元素是否在向量里,返回布尔值,有的话返回 TRUE,没有返回 FALSE。(将左边的元素和右边的每个元素进行一一对比) |
| %\*%   | 用于矩阵与它转置的矩阵相乘。                                          |
| 函数     | 说明                            |
| -------- | ------------------------------- |
| sqrt(n)  | n的平方根                       |
| exp(n)   | 自然常数e的n次方                |
| log(m,n) | m的对数函数,返回n的几次方等于m |
| log10(m) | 相当于log(m,10)                 |
title:取整函数

| 名称    | 参数模型 | 含义                       |
| ------- | -------- | -------------------------- |
| round   | (n)      | 对 n 四舍五入取整          |
|^^^| (n, m)   | 对 n 保留 m 位小数四舍五入 |
| ceiling | (n)      | 对 n 向上取整              |
| floor   | (n)      | 对 n 向下取整              |
title: 三角函数与反三角函数

|  名称    | 含义    |
| ---- | --- |
| sin  |  略   |
| cos  |     |
| tan  |     |
| asin |     |
| acos |     |
| atan     |     |
title: 正态分布函数
| 名称     | 含义         |
| -------- | ------------ |
| dnorm()  | 概率密度函数 |
| qnorm()|   率密度积分函数(从无限小到 x 的积分)           |
| qnorm()  | 位数函数              |
| rnorm()         |   机数函数(常用于概率仿真)            |

矩阵

  1. 定义:二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型,但每个元素必须有相同的模式)
  2. 函数:matrix()
title:建立矩阵
~~~R
myymatrix <- matrix(vector, nrow=number_of_rows, ncol=number_of_columns,byrow=logical_value, dimnames=list( char_vector_rownames, char_vector_colnames))
# vector包含了矩阵的元素
# nrow和ncol用以指定行和列的维数
# dimnames包含了可选的、以字符型向量表示的行名和列名
# byrow则表明矩阵应当按行填充(byrow=TRUE) 还是按列填充(byrow=FALSE),默认情况下按列填充
title: 建立矩阵
~~~R
> m<-matrix(1:20,4,5)#1-20数字,4行5列
> m
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7   11   15   19
[4,]    4    8   12   16   20
> mm<-matrix(1:20,nrow = 4,ncol = 6)#数字个数≠行×列,报错
Warning message:
In matrix(1:20, nrow = 4, ncol = 6) :
  data length [20] is not a sub-multiple or multiple of the number of columns [6]
> x<-c(1:20)
> x
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
[16] 16 17 18 19 20
> m<-matrix(x,4,5)#将x中元素排成4行五列
> m
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7   11   15   19
[4,]    4    8   12   16   20
> print(m<-matrix(x,5))#x排成五行
     [,1] [,2] [,3] [,4]
[1,]    1    6   11   16
[2,]    2    7   12   17
[3,]    3    8   13   18
[4,]    4    9   14   19
[5,]    5   10   15   20
> print(m<-matrix(x,4,byrow = T))#x按照行排列
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    6    7    8    9   10
[3,]   11   12   13   14   15
[4,]   16   17   18   19   20
> print(m<-matrix(x,4,byrow = F))#x按照列排列
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7   11   15   19
[4,]    4    8   12   16   20
> rname<-("R1","R2","R3","R4")
Error: unexpected ',' in "rname<-("R1","
> rname<-c("R1","R2","R3","R4")
> cname<-c("C1","C2","C3","C4","C5")
> dimnames(m)<-list(rname,cname)#为矩阵行和列命名
> m
   C1 C2 C3 C4 C5
R1  1  5  9 13 17
R2  2  6 10 14 18
R3  3  7 11 15 19
R4  4  8 12 16 20
title: dim函数
~~~R
> dim(x)#显示向量的维数
NULL
> dim(x)<-c(4,5)#为向量添加维数
> x
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7   11   15   19
[4,]    4    8   12   16   20
> dim(x)<-c(2,2,5)# 三维数组
> x
, , 1

     [,1] [,2]
[1,]    1    3
[2,]    2    4

, , 2

     [,1] [,2]
[1,]    5    7
[2,]    6    8

, , 3

     [,1] [,2]
[1,]    9   11
[2,]   10   12

, , 4

     [,1] [,2]
[1,]   13   15
[2,]   14   16

, , 5

     [,1] [,2]
[1,]   17   19
[2,]   18   20
~~~

### 数组
1. 维度可以大于2
2. 创建函数:array()
	1. myarray <- array(vector, dimensions, dimnames)
	2. vector包含了数组中的数据
	3. dimensions是一个数值型向量,给出了各个维度下标的最大 值
	4. dimnames是可选的、各维度名称标签的列表
	5. (行,列,维度)
```ad-R
~~~R
> dim(x)<-c(2,2,5)#三维数组,x已被定义为1-20的向量
> x
, , 1

     [,1] [,2]
[1,]    1    3
[2,]    2    4

, , 2

     [,1] [,2]
[1,]    5    7
[2,]    6    8

, , 3

     [,1] [,2]
[1,]    9   11
[2,]   10   12

, , 4

     [,1] [,2]
[1,]   13   15
[2,]   14   16

, , 5

     [,1] [,2]
[1,]   17   19
[2,]   18   20
```

```ad-R
title: 矩阵的运算

| 函数 | 含义     |
| ---- | -------- |
| +    |          |
| -    |          |
| % * % |计算外积          |
| *    | 计算内积 |
| /    |          |
| t    | 转置矩阵 |
```

### 数据框

1. 定义:
	1. 数据框是一种表格式的数据结构。数据框旨在模拟数据集,与其他统计软件例如SAS或者SPSS中的数据集的概念一致。
	2. 数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量。不同的行业对于数据集的行和列叫法不同。
2. 特点
	1. 数据框形状上很像矩阵
	2. 数据框是比较规则的列表
	3. 矩阵必须为同一数据类型
	4. 数据框每一列必须同一类型,每一行可以不同
3. 函数:data.frame()
```ad-R
title: 生成数据框
~~~R
mydata <- data.frame(col1, col2, col3,...)#列向量col1、col2、col3等可为任何类型(如字符型、数值型或逻辑型)。每一列的名称可由函数names指定
stats<-data.frame(state.name,state.abb,state.region,state.x77)
```
```ad-R
title:数据框的访问
~~~R
stats[1]#访问数据框的第一列
stats[c(1,4)]#输出第一列和第四列
stats=stats[-c(1,4)]#删除第一列和第四列
stats[,"state.abb"]#使用行名字/列名取出对应行/列
stats$"state.abb"#快速取出对应行列
stats$state.abb#快速取出对应行列
attach(mtcars)#加载数据框到R搜索目录中,加载完成后可以直接在页面敲列名来加载数据框
with(mtcars,{mpg})#访问数据框
with(mtcars,{sum(mpg)})#求和
```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值