第三次课

黄利东

25/03/2021

R编程最容易出现的问题:

-使用中文标点符号,):

-R区分大小写,R函数要使用括号

-R变量是从上面的行继承下来的,没有执行上面的代码而直接执行本行代码

> attach(mtcars)
> lm.fit <- aov(mpg~factor(cyl))#方差分析
> summary(lm.fit)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## factor(cyl)  2  824.8   412.4    39.7 4.98e-09 ***
## Residuals   29  301.3    10.4                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> detach(mtcars)

Rstudio的功能和优势:

Tab补全,Up/Down 选择,Enter,接受选择, Esc,放弃补全

p+tab 例子

Rstudio的常见的快捷键:

R中包的使用

R之所以功能强大,深受欢迎就是因为R有包罗万象的包。

关于包的分类介绍,请参考: https://mirrors.tuna.tsinghua.edu.cn/CRAN/.

包的安装途径:

包的安装和删除方法:

> #install.packages()
> #install.packages("MASS")

包的路径及包查看方法:

加载包的方法:

工作路径设置(通过代码设置):

> getwd()
## [1] "C:/Users/lidong/Desktop"
> setwd("C:/Users/lidong/Desktop")#R使用“/"作为文件层级分割
> #dir();
> #list.files()

代码编辑的关键操作:

变量管理:

> x <- 1
> y <- rivers
> ls()
## [1] "lm.fit" "x"      "y"
> rm(x)
> rm(list=ls())
> #x;y;
> x <- 1
> y <- 2
> a <- 3;b <- 4;c <- 5;
> d <- e <- 6
> f <<- 7
> 8->g

R语言查看帮助

> # help(summary)
> # ?summary
> # example(summary)
> # demo(package = .packages(all.available = TRUE))

R语言支持的数据类型

-数值型(numeric)

> x <- 2
> typeof(x)
## [1] "double"
> mode(x)
## [1] "numeric"
> class(x)
## [1] "numeric"
> y <- 1L
> typeof(y)
## [1] "integer"
> mode(y)
## [1] "numeric"
> class(y)
## [1] "integer"

-复数型(complex)

> x <- 1
> y <- 1
> z <- complex(real = x, imaginary = y)
> z
## [1] 1+1i
> typeof(z)
## [1] "complex"

-逻辑型(logical)

> x <- TRUE
> y <- NA
> typeof(x)
## [1] "logical"
> typeof(y)
## [1] "logical"

-字符型(character)

> x <- "1"
> typeof(x)
## [1] "character"
> mode(x)
## [1] "character"
> class(x)
## [1] "character"

变量

程序语言中的变量用来保存输入的值或者计算得到的值。 在R中,变量可以保存所有的数据类型, 比如标量、向量、矩阵、数据框、函数等。

R变量名必须以字母、数字、下划线和句点组成, 变量名的第一个字符不能取为数字

R语言的数据结构/数据存储的对象类型

注意数据类型和数据结构的区别!

-向量/Vector

-矩阵/Matrix

-数组/Array

-数据框/Dataframe

-列表/List

向量及向量索引

向量运算是R语言编程的核心和特色

在数学中向量是具有方向的矢量,R语言中向量是同类型数据的集合

-生成向量 手动输入(等差数列)、函数输入、数据集和外部数据导入

> x <- 1:10
> x
##  [1]  1  2  3  4  5  6  7  8  9 10
> class(x)
## [1] "integer"
> y <- c(2,5,7,-1,3,5)# c() combine/connect/concatenate
> y
## [1]  2  5  7 -1  3  5
> class(y)
## [1] "numeric"
> z <- seq(0,15,by=3)
> z
## [1]  0  3  6  9 12 15
> ?seq
> rep(3,5)
## [1] 3 3 3 3 3
> rep(3:10,2)
##  [1]  3  4  5  6  7  8  9 10  3  4  5  6  7  8  9 10
> rep(3:10,each=2)
##  [1]  3  3  4  4  5  5  6  6  7  7  8  8  9  9 10 10
> w <- c("Hi","Hello")
> class(w)
## [1] "character"
> LETTERS
##  [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
## [20] "T" "U" "V" "W" "X" "Y" "Z"
> letters
##  [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
## [20] "t" "u" "v" "w" "x" "y" "z"