• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    教学以及管理操作教程

    教学以及管理操作教程

    ¥1,000.00 ¥100.00
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      教学以及管理操作教程

      教学以及管理操作教程

      ¥1,000.00 ¥100.00
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      R语言

      • 首页
      • 博客
      • R语言
      • 【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      • 发布者 weinfoadmin
      • 分类 R语言
      • 日期 2015年7月4日
      测试开头

      概要

      R的基本原理

      R的求助方法

      R的主要数据结构

      R的图形功能

      R的编程方法

      R默认命令提示符“>”,表示正在等待输入命令,在同一行中输入多个命令语句,则需要使用分号隔开。

      R是一种解释型语言。输入命令后能够被直接解释和执行。

      R运行时,所有变量、数据、函数及结果都以对象的形式存入计算机的活动内存中,并有相应的名字代号。

      R的帮助划分为两类:

      关于R的基本知识,使用命令help.start()

      关于R中的函数或者关键字符,help()函数或者?函数名

      模糊查询,命令apropos()函数

      命令help.search(),列出所有帮助页面含有关键字的函数。

      命令find(),获得包含关键字函数所对应的程序包。

      命令args(),获得函数的自变量列表。

      命令example(),获得函数所对应的实例。

      一个简单R会话

      数据的描述

      > ?mtcars

      数据的浏览与编辑

      数据的浏览

      > mtcars

      > head(mtcars)

      > names(mtcars)

      数据编辑

      > data.entry(mtcars)

      > MTcars <- edit(mtcars)

      > xnew <- edit(data.frame())

      > x <- c(1, 2, 3, 4)

      > x

      [1] 1 2 3 4

      > data.entry(x)

      > edit(x)

      [1] 1 2 3 4

      > fix(mtcars)

      > attach(mtcars)

      > mpg

      [1]21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4 10.414.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3

      [27] 26.0 30.4 15.8 19.7 15.0 21.4

      > table(cyl)

      cyl

      4 6 8

      11 714

      > barplot(table(cyl))

      > barplot(cyl)

      > stem(mpg)

      Thedecimal point is at the |

      10| 44

      12| 3

      14| 3702258

      16| 438

      18| 17227

      20| 00445

      22| 88

      24| 4

      26| 03

      28|

      30| 44

      32| 49

      > hist(mpg)

      > boxplot(mpg)

      > mean(mpg, trim=.1)

      [1] 19.69615

      > tapply(mpg, cyl, mean)

      4 6 8

      26.66364 19.74286 15.10000

      > mean(mpg[cyl == 4])

      [1] 26.66364

      > IQR(mpg)

      [1] 7.375

      > quantile(mpg)

      0% 25% 50% 75% 100%

      10.400 15.425 19.200 22.800 33.900

      > fivenum(mpg)

      [1] 10.40 15.35 19.20 22.80 33.90

      > summary(mpg)

      Min. 1st Qu. Median Mean 3rd Qu. Max.

      10.40 15.42 19.20 20.09 22.80 33.90

      > sd(mpg)

      [1] 6.026948

      > mad(mpg)

      > plot(cyl, mpg)

      > plot(hp, mpg)

      > plot(hp, mpg, pch=cyl)

      > legend(250, 30, pch=c(4, 6, 8),legend=c("4 cylinders", "6 cylinders", "8cylinders"))

      > z <- lm(cyl ~ mpg)

      > z

      Call:

      lm(formula = cyl ~ mpg)

      Coefficients:

      (Intercept) mpg

      11.2607 -0.2525

      > cor(cyl, mpg)

      [1] -0.852162

      > cor(cyl, mpg) ^ 2

      [1] 0.72618

      > lm.res <- lm(cyl ~ mpg)

      > lm.resids <- resid(lm.res)

      > plot(lm.resids)

      > hist(lm.resids)

      > qqnorm(lm.resids)

      > detach(mtcars)

      > q()

      R的数据结构

      所有对象都有两个内在属性:类型和长度。

      类型是对象元素的基本种类,共有四种

      数值型

      字符型

      复数型

      逻辑型

      对象的类型和长度可以分别通过mode()函数和length()函数得到。

      > x <- 1

      > mode(x)

      [1] "numeric"

      > length(x)

      [1] 1

      > y <- 1:10

      > mode(y)

      [1] "numeric"

      > length(y)

      [1] 10

      > a <- c("a","b")

      > mode(a)

      [1] "character"

      > length(a)

      [1] 2

      无论什么类型的数据,缺失数据用NA表示。

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      > x <- 5/0

      > x

      [1] Inf

      > exp(x)

      [1] Inf

      > exp(-x)

      [1] 0

      > Inf – Inf

      [1] NaN

      > 0 / 0

      [1] NaN

      > sqrt(-1)

      [1] NaN

      警告信息:

      In sqrt(-1) : 产生了NaNs

      > sqrt(-1 + 0i)

      [1] 0+1i

      数据对象及类型总结

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      说明:

      1)向量是R中最基本,最简单的数据结构。R语言可以理解为向量化语言。因子是一个分类变量,分类变量包括名义变量和有序变量两种形式。数组是一个k个维度的数据表,当k=2时,就是矩阵了。

      2)向量、数组或者矩阵中的元素类型必须是一样的,而数据框和列表中的元素数据类型可以不一样。但是,数据框中每一列中元素的类型要一样,并且每一列的长度都要相同,而列表没有这个要求。换而言之,列表是个“大海”,可以海纳百川。

      R运算符包括算术运算符、比较运算符和逻辑运算符,总结如下。

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      说明:逻辑与有两种形式,&和&&,前者表示作用对象中的每一个元素并且返回与元素长度相对应的逻辑值,后者表示作用于对象中的第一个元素并且返回逻辑值。逻辑或的两种形式差异,与逻辑与一样。举例说明如下:

      > x <- c(1, 2)

      > y <- c(0, 3)

      > x & y

      [1] FALSE TRUE

      > x && y

      [1] FALSE

      > x | y

      [1] TRUE TRUE

      > x || y

      [1] TRUE

      浏览对象信息,使用ls()函数,对函数指定参数pattern的内容,可以显示某个指定字符的对象。参数pattern的内容可以是字符或者正则表达式。ls.str()会显示内存中所有对象的详细信息。该函数中max.level可以指定需要显示内容的详细级别。

      在内存中删除某个对象,使用rm()函数。例如rm(list=ls())删除内存中的所有对象,但请谨慎使用。

      向量的建立

      数值型向量,常用函数seq()或者: rep() c() scan(),举例说明如下

      > 1:10

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

      > seq(1,10)

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

      > rep(2:5, 2)

      [1] 2 3 4 5 2 3 4 5

      > rep(1:2, each=2)

      [1] 1 1 2 2

      > rep(1:2, each=2, times=2)

      [1] 1 1 2 2 1 1 2 2

      > vec1 <- c(1, 3, 5, 7)

      > vec1

      [1] 1 3 5 7

      > vec2 <- scan()

      1: 10 9 8 7 6

      6:

      Read 5 items

      > vec2

      [1] 10 9 8 7 6

      字符型向量,常用函数c() paste(),举例说明如下

      > vec3 <- c("Hello","world")

      > vec3

      [1] "Hello" "world"

      > vec4 <- paste(c("X","Y"), 1:10, sep="-")

      > vec4

      [1]"X-1" "Y-2" "X-3" "Y-4" "X-5" "Y-6" "X-7" "Y-8" "X-9" "Y-10"

      逻辑型向量,利用各种条件创建逻辑型向量或者利用c()函数把逻辑值TRUE/FALSE进行组合,举例说明如下。

      > vec5 <- c(-1, 0, 1)

      > vec5 > 0

      [1] FALSE FALSE TRUE

      > vec6 <- vec5 <= 0

      > vec6

      [1] TRUE TRUE FALSE

      > vec7 <- c(TRUE, FALSE)

      > vec7

      [1] TRUE FALSE

      因子型向量,利用factor()函数,举例说明如下。

      > vec8 <- c("green","red", "black")

      > vec9 <- factor(vec8)

      > vec9

      [1] green red black

      Levels: black green red

      > vec10 <- c(4, 1, 2, 3)

      > vec11 <- factor(vec10)

      > vec11

      [1] 4 1 2 3

      Levels: 1 2 3 4

      > ff <- factor(c("B","A", "C"), levels=c(1, 2, 3))

      > ff

      [1] <NA> <NA> <NA>

      Levels: 1 2 3

      > ff <- factor(c("B","A", "C"), labels=c(1, 2, 3))

      > ff

      [1] 2 1 3

      Levels: 1 2 3

      > ff1 <- factor(c("B","A", "C"))

      > ff1

      [1] B A C

      Levels: A B C

      > levels(ff1) <- c(1, 2, 3)

      > ff1

      [1] 2 1 3

      Levels: 1 2 3

      函数gl()能产生规则的序列。

      > gl(3, 5)

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

      Levels: 1 2 3

      > gl(3, 5, length=30)

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

      Levels: 1 2 3

      > gl(2, 6, label=c("Male","Female"))

      [1]Male Male Male Male Male Male Female Female Female Female

      [11] Female Female

      Levels: Male Female

      > gl(2,1, length=20)

      [1]1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2

      Levels: 1 2

      > gl(2, 2, length=20)

      [1]1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2

      Levels: 1 2

      数值型向量运算

      向量可以用于算术运算表达式,遵循循环规则。举例说明如下:

      > 10 + c(1, 2, 3)

      [1] 11 12 13

      > c(1, 2, 3) ^ 2

      [1] 1 4 9

      > sqrt(c(1, 2, 3))

      [1] 1.000000 1.414214 1.732051

      > c(1, 2) + 1:4

      [1] 2 4 4 6

      > c(1, 2, 3) + 1:4

      [1] 2 4 6 5

      Warning message:

      In c(1, 2, 3) + 1:4 :

      longer object length is not a multiple of shorter object length

      常用的统计函数及作用汇总

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      说明:函数max,min,median,var,sd,sum,cusum,cumprod,cummax,cummin对于矩阵及数据框意义有方向性。对于矩阵,cov()和cor()分别用来求矩阵的协方差阵和相关系数阵。

      向量的下标与子集元素的提取

      下标是正整数向量和负整数向量,前者表示获取相应下标所对应的元素值,后者表示除掉相应位置元素值后的所有剩余元素值,举例说明如下:

      > data <- c(1:10)

      > data[c(1,2)] [1] 1 2

      > data[c(-1, -4)] [1] 2 3 5 6 7 8 9 10

      字符串的向量和逻辑向量下标,举例说明如下。

      > data1 <- c(1, 2, 3)

      > names(data1) <- c("A","B", "C")

      > data1

      A B C

      1 2 3

      > data1["A"]

      A

      1

      > data1 > 2

      A B C

      FALSE FALSE TRUE

      > data1[data1 > 2]

      C

      3

      > data1[c(TRUE,FALSE)]

      A C

      1 3

      数组与矩阵的建立

      数组的创建,使用array()函数,举例说明如下。

      > array1 <- array(1:8, c(2, 2, 2))

      > array1

      , , 1

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

      [2,] 2 4

      , , 2

      [,1] [,2] [1,] 5 7

      [2,] 6 8

      > dim(array1)

      [1] 2 2 2

      > dimnames(array1) <-list(c("A1", "A2"), c("B1", "B2"),c("C1", "C2"))

      > array1

      , , C1

      B1B2

      A1 1 3

      A2 2 4

      , , C2

      B1B2

      A1 5 7

      A2 6 8

      > rownames(array1)

      [1] "A1" "A2"

      > colnames(array1)

      [1] "B1" "B2"

      > dimnames(array1)

      [[1]] [1] "A1" "A2"

      [[2]] [1] "B1" "B2"

      [[3]] [1] "C1" "C2"

      矩阵的建立

      矩阵是数组的特例,矩阵也可以使用array()函数建立,例如

      > matrix1 <- array(1:6, c(2, 3))

      > matrix1

      [,1] [,2] [,3] [1,] 1 3 5

      [2,] 2 4 6

      > matrix2 <- array(1:4, c(2, 3))

      > matrix2

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

      [2,] 2 4 2

      或者使用matrix()函数创建

      使用diag()函数建立对角矩阵

      > matrix3 <- matrix(1, nrow=2,ncol=2)

      > matrix3

      [,1] [,2] [1,] 1 1

      [2,] 1 1

      > diag(3)

      [,1] [,2] [,3] [1,] 1 0 0

      [2,] 0 1 0

      [3,] 0 0 1

      > v <- c(10,20,30)

      > diag(v)

      [,1] [,2] [,3] [1,] 10 0 0

      [2,] 0 20 0

      [3,] 0 0 30

      > diag(2, nrow=4, ncol=2)

      [,1] [,2] [1,] 2 0

      [2,] 0 2

      [3,] 0 0

      [4,] 0 0

      > diag(2, nrow=4, ncol=4)

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

      [2,] 0 2 0 0

      [3,] 0 0 2 0

      [4,] 0 0 0 2

      数组与矩阵的下标与子集(元素)的提取

      举例说明如下

      > matrix4 <- matrix(1:6, 2, 3)

      > matrix4

      [,1] [,2] [,3] [1,] 1 3 5

      [2,] 2 4 6

      > matrix4[1,2] [1] 3

      > matrix4[1,] [1] 1 3 5

      > matrix4[1,,drop=FALSE]

      [,1] [,2] [,3] [1,] 1 3 5

      > matrix4[,1] [1] 1 2

      > matrix4[,1,drop=FALSE]

      [,1] [1,] 1

      [2,] 2

      矩阵的运算

      代数运算

      转置,使用t()函数

      提取对角元,使用diag()函数

      > X <- matrix(1:6, 2, 3)

      > X

      [,1] [,2] [,3] [1,] 1 3 5

      [2,] 2 4 6

      > t(X)

      [,1] [,2] [1,] 1 2

      [2,] 3 4

      [3,] 5 6

      > diag(X)

      [1] 1 4

      几个矩阵按行合并rbind()函数或者按列合并cb ind()函数

      > m1 <- matrix(1, 2, 2)

      > m2 <- matrix(2, 2, 2)

      > m1

      [,1] [,2] [1,] 1 1

      [2,] 1 1

      > m2

      [,1] [,2] [1,] 2 2

      [2,] 2 2

      > rbind(m1, m2)

      [,1] [,2] [1,] 1 1

      [2,] 1 1

      [3,] 2 2

      [4,] 2 2

      > cbind(m1, m2)

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

      [2,] 1 1 2 2

      矩阵的逐元乘积

      > m1 * m2

      [,1] [,2] [1,] 2 2

      [2,] 2 2

      矩阵的乘法运算

      > rbind(m1, m2) %*% cbind(m1, m2)

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

      [2,] 2 2 4 4

      [3,] 4 4 8 8

      [4,] 4 4 8 8

      > cbind(m1, m2) %*% rbind(m1, m2)

      [,1] [,2] [1,] 10 10

      [2,] 10 10

      方阵的行列式det()

      > Y <- matrix(1:4, 2, 2)

      > Y

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

      [2,] 2 4

      > det(Y)

      [1] -2

      其他函数,交叉乘积crossprod()函数;特征根与特征向量eigen()函数;QR分解qr()函数。

      统计运算

      统计运算可以参见前面总结的常用统计函数表格。举例说明如下。

      > mm <- matrix(rnorm(12), nrow=3)

      > mm

      [,1] [,2] [,3] [,4] [1,] 0.6749164 -0.3109625 1.7681337 -1.060834

      [2,] -0.8344582 1.3685072 -1.6005624 -1.558336

      [3,] 0.4438795 -0.8994712 -0.8189797 -1.242254

      > apply(mm, 1, mean)

      [1] 0.2678134 -0.6562123 -0.6292063

      > mean(mm[,1])

      [1] 0.09477924

      > apply(mm, 2, mean)

      [1] 0.09477924 0.05269117 -0.21713615-1.28714130

      > scale(mm, center=TRUE, scale=TRUE)

      [,1] [,2] [,3] [,4] [1,] 0.7135828 -0.3089905 1.1259804 0.8988648

      [2,] -1.1429846 1.1180271 -0.7846343 -1.0771517

      [3,] 0.4294018 -0.8090366 -0.3413461 0.1782869

      attr(,"scaled:center")

      [1] 0.09477924 0.05269117 -0.21713615-1.28714130

      attr(,"scaled:scale")

      [1] 0.8129921 1.1769088 1.7631478 0.2517700

      > row.med <- apply(mm, 1, median)

      > row.med

      [1] 0.1819770 -1.1963970 -0.8592254

      > sweep(mm, 1, row.med,FUN="-")

      [,1] [,2] [,3] [,4] [1,] 0.4929394 -0.49293945 1.58615672 -1.2428111

      [2,] 0.3619388 2.56490413 -0.40416542 -0.3619388

      [3,] 1.3031050 -0.04024571 0.04024571 -0.3830286

      数据框的建立

      统计分析中一个完整的数据集通常是由若干个变量的若干个观测组合而成,在R中用数据框实现。

      数据框直接建立,使用data.frame()函数

      > x <- c(42, 100, 88, 75)

      > y <- 1:4

      > df1 <- data.frame(INDEX=y, VALUE=x)

      > df1

      INDEX VALUE

      1 1 42

      2 2 100

      3 3 88

      4 4 75

      数据框间接建立,通过从数据文件(文本文件、电子表格文件和其他统计软件文件等)中导入而建立。常用函数read.table()函数。

      适用于数据框的函数

      常用函数max min median var sd cumsum cumprod cummax cummin cov cor等,例如:

      > attach(Puromycin)

      > head(Puromycin)

      conc rate state

      1 0.02 76 treated

      2 0.02 47 treated

      3 0.06 97 treated

      4 0.06 107 treated

      5 0.11 123 treated

      6 0.11 139 treated

      > summary(Puromycin)

      conc rate state

      Min. :0.0200 Min. : 47.0 treated :12

      1stQu.:0.0600 1st Qu.: 91.5 untreated:11

      Median :0.1100 Median :124.0

      Mean :0.3122 Mean :126.8

      3rdQu.:0.5600 3rd Qu.:158.5

      Max. :1.1000 Max. :207.0

      > pairs(Puromycin, panel=panel.smooth)

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      > xtabs(~state + conc, data = Puromycin)

      conc

      state 0.02 0.06 0.11 0.22 0.56 1.1

      treated 2 2 2 2 2 2

      untreated 2 2 2 2 2 1

      数据框的下标与子集提取

      > Puromycin[1,1] [1] 0.02

      > Puromycin[c(1,3,5), c(1,3)]

      conc state

      1 0.02 treated

      3 0.06 treated

      5 0.11 treated

      > Puromycin$conc

      [1]0.02 0.02 0.06 0.06 0.11 0.11 0.22 0.22 0.56 0.56 1.10 1.10 0.02 0.02 0.06 0.060.11 0.11 0.22 0.22 0.56 0.56

      [23] 1.10

      > subset(Puromycin, state =="treated" & rate > 160)

      conc rate state

      9 0.56 191 treated

      10 0.56 201 treated

      11 1.10 207 treated

      12 1.10 200 treated

      数据框中添加新变量

      举例说明如下

      基本方法

      > Puromycin$iconc <- 1/Puromycin$conc

      > head(Puromycin)

      conc rate state iconc

      1 0.02 76 treated 50.000000

      2 0.02 47 treated 50.000000

      3 0.06 97 treated 16.666667

      4 0.06 107 treated 16.666667

      5 0.11 123 treated 9.090909

      6 0.11 139 treated 9.090909

      使用with()函数

      > Puromycin$iconc1 <- with(Puromycin,1/conc)

      > head(Puromycin)

      conc rate state iconc iconc1

      1 0.02 76 treated 50.000000 50.000000

      2 0.02 47 treated 50.000000 50.000000

      3 0.06 97 treated 16.666667 16.666667

      4 0.06 107 treated 16.666667 16.666667

      5 0.11 123 treated 9.090909 9.090909

      6 0.11 139 treated 9.090909 9.090909

      使用transform()函数

      > Puromycin1 <- transform(Puromycin,sqrtconc=sqrt(conc))

      > head(Puromycin1)

      conc rate state iconc iconc1 sqrtconc

      1 0.02 76 treated 50.000000 50.000000 0.1414214

      2 0.02 47 treated 50.000000 50.000000 0.1414214

      3 0.06 97 treated 16.666667 16.666667 0.2449490

      4 0.06 107 treated 16.666667 16.666667 0.2449490

      5 0.11 123 treated 9.090909 9.090909 0.3316625

      6 0.11 139 treated 9.090909 9.090909 0.3316625

      列表的建立

      R的列表就是包含任何类型的对象。

      列表使用函数list()创建。

      举例说明如下

      > L1 <- list(1:6, matrix(1:4,nrow=2))

      > L1

      [[1]] [1] 1 2 3 4 5 6

      [[2]]

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

      [2,] 2 4

      > L2 <- list(vec1=1:6,matrix1=matrix(1:4, nrow=2))

      > L2

      $vec1

      [1] 1 2 3 4 5 6

      $matrix1

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

      [2,] 2 4

      > L2[1]

      $vec1

      [1] 1 2 3 4 5 6

      > L2[[1]] [1] 1 2 3 4 5 6

      > L2$vec1

      [1] 1 2 3 4 5 6

      时间序列的建立

      时间序列由函数ts()通过一个向量或者矩阵创建一个一元的或者多元的的时间序列,它称为ts对象。

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      > ts(1:10, start=2000)

      Time Series:

      Start = 2000

      End = 2009

      Frequency = 1

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

      > ts(1:47, frequency=12, start=c(2000,2))

      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

      2000 1 2 3 4 5 6 7 8 9 10 11

      2001 12 13 14 15 16 17 18 19 20 21 22 23

      2002 24 25 26 27 28 29 30 31 32 33 34 35

      2003 36 37 38 39 40 41 42 43 44 45 46 47

      > ts(1:10, frequency=4, start=c(2000,2))

      Qtr1 Qtr2 Qtr3 Qtr4

      2000 1 2 3

      2001 4 5 6 7

      2002 8 9 10

      > ts(matrix(rpois(36,5), 12, 3),start=c(2000, 2), frequency=12)

      Series 1 Series 2 Series 3

      Feb 2000 10 4 3

      Mar 2000 3 4 8

      Apr 2000 5 7 3

      May 2000 1 4 7

      Jun 2000 6 6 4

      Jul 2000 5 7 4

      Aug 2000 6 3 6

      Sep 2000 6 6 5

      Oct 2000 4 4 1

      Nov 2000 2 4 4

      Dec 2000 4 4 4

      Jan 2001 9 6 6

      数据的存取与读取

      数据的存取

      保存为文本文件,使用函数write.table()函数或者save()函数

      举例说明如下

      > d <- data.frame(obs=c(1,2,3),treat=c("A","B","A"),weight=c(2.3, NA, 9))

      > d

      obstreat weight

      1 1 A 2.3

      2 2 B NA

      3 3 A 9.0

      保存为简单的文件,行名不写入文件,变量名不被双引号包含。

      > write.table(d,file="c:/TestData/foo.txt", row.names=FALSE, quote=FALSE)

      保存为逗号分隔的文件

      > write.csv(d,file="c:/TestData/foo.csv", row.names=FALSE, quote=FALSE)

      保存为R格式的文件

      > save(d,file="c:/TestData/foo.Rdata")

      空间的映像保存下来

      >save.image(file="C:/TestData/.Rdata")

      等价于

      save(list=ls(all=TRUE),file="C:/TestData/.Rdata")

      数据的读取

      文本文件数据的读取

      R可以使用这些函数读取存储在文本文件(ASCII)中的数据:read.table()、scan()和read.fwf()函数。

      Excel数据的读取

      有两种简单的方法,一种是使用剪贴板,具体操作:打开Excel中的电子表格,选中需要的数据区域,再复制到剪贴板,然后在R中键入命令。

      mydata <-read.delim("clipboard")

      另一种使用RODBC程序包。

      R中数据集的读取

      R的标准数据datasets

      使用data()函数查看

      专用程序包的数据集

      R格式的数据

      R格式的数据使用load()函数加载

      其它统计软件数据的读取

      具体方法可以查阅R官方技术文档《R数据导入和导出手册》

      R图形功能

      R具有强大的绘图功能

      先看一下R提供的两组图形Demo

      demo(graphics)#二维图形示例

      demo(graphics)#三维图形示例

      R中提供两种绘图函数

      高级绘图函数:创建一个新的图形。

      低级绘图函数:在现存的图形上面添加元素。

      R中高级绘图函数

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      绘图函数主要共同选项

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      R中低级绘图函数


      【陆勤笔记】《R语言与统计分析》R的基本原理与核心


      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      绘图参数

      绘图参数可以进行设置或者通过par()函数来设置绘图参数。

      常用的绘图参数。

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      R编程

      从统计语言和编程的角度来认识和应用R

      循环和向量化

      控制结构

      条件结构

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      循环结构

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      向量化

      向量化编程的好处

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      编写自己的函数

      大多数R的工作是通过函数来实现的,而且这些函数的输入参数都放在一个括弧里面,用户可以编写自己的函数。

      良好的变成习惯

      为了他人,也为了自己,你的程序应该具有

      可读性

      可理解性

      四个良好习惯

      习惯一:采用结构化、模块化编程

      习惯二:增加注释

      习惯三:命名能够有明确含义

      习惯四:格式缩进

      练习题

      【陆勤笔记】《R语言与统计分析》R的基本原理与核心

      【互动交流】

      无论您是投资人,创业者,还是从业者,R语言爱好者,愿意深入交流的朋友,请给陆勤留言或者添加陆勤微信:luqin360。

      谢谢您的关注,祝好。


      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      【陆勤笔记】《深入浅出统计学》5离散概率分布的运用:善用期望
      2015年7月4日

      下一篇文章

      【陆勤笔记】《R语言与统计分析》3概率与分布
      2015年7月4日

      你可能也喜欢

      3-1665801675
      R语言学习:重读《R数据科学(中文版)》书籍
      28 9月, 2022
      6-1652833487
      经典铁死亡,再出新思路
      16 5月, 2022
      1-1651501980
      R语言学习:阅读《R For Everyone 》(第二版)
      1 5月, 2022

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?