精华内容
下载资源
问答
  • 9本优秀R语言教程

    千次阅读 2013-11-18 09:05:17
    本文向你推荐 9 本优秀R 语言相关的免费电子书: 1. The R Inferno 网址:www.burns-stat.com/documents/books/the-r-inferno/ 作者:Patrick Burns 格式:PDF 页数:126   2. Introduction to ...

    本文向你推荐 9 本优秀的 R 语言相关的免费电子书:

    1. The R Inferno

    The R Inferno

    网址:www.burns-stat.com/documents/books/the-r-inferno/
    作者:Patrick Burns
    格式:PDF
    页数:126

     

    2. Introduction to Probability and Statistics Using R

    网址:ipsur.org
    作者:G. Jay Kerns
    格式:PDF, HTML, LaTeX sources
    页数:412

     

    3. The Undergraduate Guide to R

    网址:sites.google.com/site/undergraduateguidetor/
    作者:Trevor Martin
    格式:PDF
    页数:68

     

    4. Using R for Introductory Statistics

    网址:cran.r-project.org/doc/contrib/Verzani-SimpleR.pdf
    作者:John Verzani
    格式:PDF
    页数:114

     

    5. An Introduction to R

    An Introduction to R

    网址:cran.r-project.org/doc/manuals/R-intro.pdf
    作者:William N Venables, David M Smith, and the R Core Team
    格式:PDF
    页数:109

     

    6. Practical Regression and Anova in R

    网址:www.maths.bath.ac.uk/~jjf23/book/
    作者:Julian J. Faraway
    格式:PDF
    页数:213

     

    7. Introduction to Statistical Thinking (With R, Without Calculus)

    网址:pluto.huji.ac.il/~msby/StatThink/index.html
    作者:Benjamin Yakir
    格式:PDF
    页数:324

     

    8. Multivariate Statistics with R

    网址:knowledgeforge.net/opentextbook/svn/multivariatestatistics
    作者:Paul J. Hewson
    格式:PDF
    页数:189

     

    9. A Little Book of R for Biomedical Statistics

    网址:a-little-book-of-r-for-biomedical-statistics.readthedocs.org
    作者:Avril Coghlan
    格式:PDF, HTML
    页数:35

    via linuxlinks

    
    展开全文
  • 优秀R语言免费图书

    2015-12-15 10:53:00
     Alison Neville 写道 "R是用于统计计算和可视化的开源编程语言和软件环境,常被开发统计软件和分析工具的统计和数据挖掘工程师使用。R提供了大量统计和图形技术,包括线性和非线性建模,经典统计测试,时间序列...

    本文转载至:http://www.open-open.com/news/view/1a89da9

        Alison Neville 写道 "R是用于统计计算和可视化的开源编程语言和软件环境,常被开发统计软件和分析工具的统计和数据挖掘工程师使用。R提供了大量统计和图形技术,包括线性和非线性建模,经典统计测试,时间序列分析、分类和聚类等等。R不是一种容易学习的语言。

      这篇文章挑选出一些优秀的内容丰富的R语言图书,帮助统计学者和数据挖掘工程师精通R的功能。这些免费图书包括:《The R Inferno》、《Introduction to Probability and Statistics Using R》和《The Undergraduate Guide to R》等。

    1. The R Inferno

    9 本优秀的 R 语言免费电子图书

    网址:www.burns-stat.com/documents/books/the-r-inferno/
    作者:Patrick Burns
    格式:PDF
    页数:126

     

    2. Introduction to Probability and Statistics Using R

    9 本优秀的 R 语言免费电子图书

    网址:ipsur.org
    作者:G. Jay Kerns
    格式:PDF, HTML, LaTeX sources
    页数:412

     

    3. The Undergraduate Guide to R

    9 本优秀的 R 语言免费电子图书

    网址:sites.google.com/site/undergraduateguidetor/
    作者:Trevor Martin
    格式:PDF
    页数:68

     

    4. Using R for Introductory Statistics

    9 本优秀的 R 语言免费电子图书

    网址:cran.r-project.org/doc/contrib/Verzani-SimpleR.pdf
    作者:John Verzani
    格式:PDF
    页数:114

     

    5. An Introduction to R

    9 本优秀的 R 语言免费电子图书

    网址:cran.r-project.org/doc/manuals/R-intro.pdf
    作者:William N Venables, David M Smith, and the R Core Team
    格式:PDF
    页数:109

     

    6. Practical Regression and Anova in R

    9 本优秀的 R 语言免费电子图书

    网址:www.maths.bath.ac.uk/~jjf23/book/
    作者:Julian J. Faraway
    格式:PDF
    页数:213

     

    7. Introduction to Statistical Thinking (With R, Without Calculus)

    9 本优秀的 R 语言免费电子图书

    网址:pluto.huji.ac.il/~msby/StatThink/index.html
    作者:Benjamin Yakir
    格式:PDF
    页数:324

     

    8. Multivariate Statistics with R

    9 本优秀的 R 语言免费电子图书

    网址:knowledgeforge.net/opentextbook/svn/multivariatestatistics
    作者:Paul J. Hewson
    格式:PDF
    页数:189

     

    9. A Little Book of R for Biomedical Statistics

    9 本优秀的 R 语言免费电子图书

    网址:a-little-book-of-r-for-biomedical-statistics.readthedocs.org
    作者:Avril Coghlan
    格式:PDF, HTML
    页数:35

    via linuxlinks

     

    展开全文
  • 9 本优秀R 语言免费电子书

    千次阅读 2013-08-07 11:07:59
    R语言是主要用于统计分析、绘图的语言和操作环境。 R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman 开发。 (也因此称为R)现在由“R开发核心团队”负责开发。 R是基于S语言的一个GNU项目,所以也...

    英文原文:linuxlinks    翻译:开源中国

    R语言是主要用于统计分析、绘图的语言和操作环境。 R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman 开发。 (也因此称为R)现在由“R开发核心团队”负责开发。 R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。 R的语法是来自Scheme。

    本文向你推荐 9 本优秀的 R 语言相关的免费电子书:

    1. The R Inferno

    9 本优秀的 R 语言免费电子书

    网址:www.burns-stat.com/documents/books/the-r-inferno/
    作者:Patrick Burns
    格式:PDF
    页数:126

    2. Introduction to Probability and Statistics Using R

    9 本优秀的 R 语言免费电子书

    网址:ipsur.org
    作者:G. Jay Kerns
    格式:PDF, HTML, LaTeX sources
    页数:412

    3. The Undergraduate Guide to R

    9 本优秀的 R 语言免费电子书

    网址:sites.google.com/site/undergraduateguidetor/
    作者:Trevor Martin
    格式:PDF
    页数:68

    4. Using R for Introductory Statistics

    9 本优秀的 R 语言免费电子书

    网址:cran.r-project.org/doc/contrib/Verzani-SimpleR.pdf
    作者:John Verzani
    格式:PDF
    页数:114

    5. An Introduction to R

    9 本优秀的 R 语言免费电子书

    网址:cran.r-project.org/doc/manuals/R-intro.pdf
    作者:William N Venables, David M Smith, and the R Core Team
    格式:PDF
    页数:109

    6. Practical Regression and Anova in R

    9 本优秀的 R 语言免费电子书

    网址:www.maths.bath.ac.uk/~jjf23/book/
    作者:Julian J. Faraway
    格式:PDF
    页数:213

    7. Introduction to Statistical Thinking (With R, Without Calculus)

    9 本优秀的 R 语言免费电子书

    网址:pluto.huji.ac.il/~msby/StatThink/index.html
    作者:Benjamin Yakir
    格式:PDF
    页数:324

    8. Multivariate Statistics with R

    9 本优秀的 R 语言免费电子书

    网址:knowledgeforge.net/opentextbook/svn/multivariatestatistics
    作者:Paul J. Hewson
    格式:PDF
    页数:189

    9. A Little Book of R for Biomedical Statistics

    9 本优秀的 R 语言免费电子书

    网址:a-little-book-of-r-for-biomedical-statistics.readthedocs.org
    作者:Avril Coghlan
    格式:PDF, HTML
    页数:35

    展开全文
  • R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件...本次的R语言语法精讲(一)主要介绍了 R语言的数据结构,R语言的运算以及R语言的编程结构。学完本文后,您将可以具备...

    e27fe077-ff0f-eb11-8da9-e4434bdf6706.png

    R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。在学习R数据科学之前,我们首先要对R语言的基础语法有一个良好的了解,方便我们理解以后的数据科学算法。本次语法精讲分三次讲完,每次负责讲解其中一部分!本次的R语言语法精讲(一)主要介绍了 R语言的数据结构,R语言的运算以及R语言的编程结构。学完本文后,您将可以具备初步的R语言编程技巧,并能编写大部分程序以及算法。

    本文引用:

    《R语言实战--第2版》---------Robert I.Kabacoff 《统计计算与模拟》课程课件-------深圳大学林炳清老师

    本文内容:

    • R常用数据结构(本文)
    • R的运算以及常用函数(本文)
    • R语言编程结构(本文)
      判断if-else(本文)
      循环for、while、repeat(本文)
      自定义函数(本文)
    • R的输入与输出
    • R基础绘图
    • 基本数据管理
    • 高级数据管理

    1. R常用数据结构

    R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。它们在存储数据的类型、创建方式、结构复杂度,以及用于定位和访问其中个别元素的标记等方面均有所不同。

    e87fe077-ff0f-eb11-8da9-e4434bdf6706.png

    1.1 向量(Vector)

    我们可以把vector想象:vector是一串糖葫芦,把山楂都串在一起。vector包含的是一串数据,要求这一串的数据类型是一样的。在R中,常见的数据类型有3种:

    • numeric (数值型, Ex, 1, 3.14, -2。在R中,我们可以不区分整数型,浮点型,双精度型等)
    • character (字符型, Ex, “a”, “hello world”)
    • logical (布尔型, Ex, “TRUE” and “FALSE”)

    (1) 创建向量:

    我们可以使用 c() 创造一个vector, c是英文单词cancatenate的缩写,意思是连结,连锁。所以c()可以把括号里的数字或者其他的数据类型的元素串成一个vector. 例如:(<-代表R语言中的赋值符号,绝大多数也可以用=代替;相当于python的“=”)

    a 

    ed7fe077-ff0f-eb11-8da9-e4434bdf6706.png

    这里,a是数值型向量,b是字符型向量,而c是逻辑型向量。 注意,单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型) 。同一向量中无法混杂不同模式的数据。

    (2) 向量vector的索引

    vector索引指的是R会给vector的每个元素一个位置坐标。R的位置坐标从1开始,从左到右依次给予vector的每个元素。例如:

    a <- c("k", "j", "h", "a", "c", "m") 
    a[3]
    a[c(1, 3, 5)] 
    a[2:6]

    f57fe077-ff0f-eb11-8da9-e4434bdf6706.png

    此外,我们还可以很方便的输出vector除去某些位置的对应元素后的vector, 例如:

    x  <- c(1, 3, 6, 4)
    x[-c(3, 4)]

    fa7fe077-ff0f-eb11-8da9-e4434bdf6706.png

    我们还可以用names()函数给vector的每一个元素赋予一个名字,例如:

    score <- c(98, 100, 60, 20)                      # score 表示一次考试的成绩
    names(score) <- c("Lin", "Wang", "Chen", "Sun")  # score 每一个成绩对应的人名
    score
    score[2]
    score["Wang"]   # 可以通过vector元素的名字得到第二个同学的成绩

    fe7fe077-ff0f-eb11-8da9-e4434bdf6706.png

    (3) 产生常用vector的方法::, seq(), rep()

    1:50
    6:2
    -5:-10
    seq(from = 3, to = 10)
    seq(from = 1, to = 10, by = 2)   # seq()可以自定义递增或者递减的步长
    rep(10, 5)    # 产生一个vector, 该vector包含5个10
    rep(c(2:4), 3) # 产生一个vector, 该vecotr包含3个 `c(2:4)`
    rep("I Love R!", 3)

    0280e077-ff0f-eb11-8da9-e4434bdf6706.png

    1.2 矩阵matrix

    矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通过函数matrix()创建矩阵。一般使用格式为:

    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) ,默认情况下按列填充。代码清单2-1中的代码演示了matrix函数的用法。

    (1) 创建矩阵

    我们首先创建了一个5×4的矩阵, 接着创建了一个2×2的含列名标签的矩阵, 并按行进行填 充,最后创建了一个2×2的矩阵并按列进行了填充。

    y <- matrix(1:20, nrow=5, ncol=4)  # 创建一个5×4的矩阵
    y
    cells    <- c(1,26,24,68)
    rnames   <- c("R1", "R2")
    cnames   <- c("C1", "C2")
    mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE,    # 按行填充的2×2矩阵 
                         dimnames=list(rnames, cnames)) 
    mymatrix
    mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=FALSE,  # 按列填充的2×2矩阵 
                         dimnames=list(rnames, cnames))
    mymatrix

    0780e077-ff0f-eb11-8da9-e4434bdf6706.png

    (2) 矩阵的索引

    x <- matrix(1:10, nrow=2)
    x
    x[2,]
    x[,2]
    x[1,4]
    x[1, c(4,5)] 

    0b80e077-ff0f-eb11-8da9-e4434bdf6706.png

    (3) 删除矩阵的某些行,列

    x <- c(3, 1, 5, 2, 3, 8, 5, 8, 9, 4, 2, 3)
    x <- matrix(x, nrow = 3, ncol = 4, byrow = T)
    x
    y <- x[-2, ]
    y
    z <- x[, -c(2:3)]
    z

    0f80e077-ff0f-eb11-8da9-e4434bdf6706.png

    (4) 添加一行或一列:cbind或者rbind合并两个矩阵

    y <- cbind(x, c(3, 4, 5))    # 添加一列c(3,4,5)到x矩阵最后
    y
    z <- rbind(c(7, 8, 9, 10), x)  # 添加X到c(7,8,9,10)的行上
    z

    1180e077-ff0f-eb11-8da9-e4434bdf6706.png

    (5) 给matrix的行和列加上名字

    rownames()和colnames()给matrix的行和列添加或者修改名字:

    x <- c(3, 1, 5, 2, 3, 8, 5, 8, 9, 4, 2, 3)
    x <- matrix(x, nrow = 3, ncol = 4, byrow = T)
    x
    rownames(x) <- c("a", "b", "c")   # 添加行名
    colnames(x) <- c("w", "x", "y", "z")  # 添加列名
    x

    1780e077-ff0f-eb11-8da9-e4434bdf6706.png

    1.3 数组

    数组(array)与矩阵类似,但是维度可以大于2。数组可通过array函数创建,形式如下:

    myarray <- array(vector, dimensions, dimnames)

    其中vector包含了数组中的数据, dimensions是一个数值型向量, 给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表。

    (1) 数组的创建

    dim1 <- c("A1", "A2")
    dim2 <- c("B1", "B2", "B3") 
    dim3 <- c("C1", "C2", "C3", "C4") 
    z <- array(1:24, c(2, 3, 4), dimnames=list(dim1, dim2, dim3))
    z

    1b80e077-ff0f-eb11-8da9-e4434bdf6706.png

    如你所见,数组是矩阵的一个自然推广。它们在编写新的统计方法时可能很有用。像矩阵一样,数组中的数据也只能拥有一种模式。

    (2) 数组的索引

    从数组中选取元素的方式与矩阵相同。

    z[1,2,3]

    2080e077-ff0f-eb11-8da9-e4434bdf6706.png

    1.4 数据框 dataframe

    data frame可以看成是一个excel表格。dataframe是数据分析中非常常用的一种储存数据的方式。dataframe也是一个2维的表格,和matrix一样不一样的地方是data frame的每一列的数据类型可以不一样,但是要求每一列内部数据类型是一样的。数据框可通过函数data.frame()创建:

    mydata <- data.frame(col1, col2, col3,...)

    其中的列向量col1、col2、col3等可为任何类型(如字符型、数值型或逻辑型) 。每一列的名称可由函数names指定。

    (1) 数据框的创建

    patientID <- c(1, 2, 3, 4)
    age <- c(25, 34, 28, 52)
    diabetes <- c("Type1", "Type2", "Type1", "Type1") 
    status <- c("Poor", "Improved", "Excellent", "Poor") 
    patientdata <- data.frame(patientID, age, diabetes, status) 
    patientdata  

    2580e077-ff0f-eb11-8da9-e4434bdf6706.png

    每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。由于数据框与分析人员通常设想的数据集的形态较为接近,我们在讨论数据框时将交替使用术语 变量

    如果想指定index,那么:

    patientdata <- data.frame(patientID, age, diabetes, 
                              status, row.names=patientID) 
    patientdata

    2980e077-ff0f-eb11-8da9-e4434bdf6706.png

    (2) 数据框的索引

    patientdata <- data.frame(patientID, age, diabetes, status) 
    patientdata  
    patientdata[1:2]
    patientdata[c("diabetes", "status")] 
    patientdata$age   # 表示patientdata数据框中的变量age

    2c80e077-ff0f-eb11-8da9-e4434bdf6706.png

    (3) 粘结两个dataframe:用cbind和’rbind’结合两个data frame.

    x <- data.frame(Name = c("Jone","Lily"), Grade = c(80,90))
    x
    x <- cbind(x, data.frame(Asia = c(F, F)) )
    x
    x <- rbind(x, data.frame(Name = "Wang", Grade = 100, Asia = T))
    x

    3180e077-ff0f-eb11-8da9-e4434bdf6706.png

    1.5 因子factor

    如你所见,变量可归结为名义型、有序型或连续型变量。名义型变量是没有顺序之分的类别变量。糖尿病类型Diabetes(Type1、Type2)是名义型变量的一例。即使在数据中Type1编码为1而Type2编码为2,这也并不意味着二者是有序的。有序型变量表示一种顺序关系,而非数量关系。病情Status(poor、improved、excellent)是顺序型变量的一个上佳示例。我们明白,病情为poor(较差)病人的状态不如improved(病情好转)的病人,但并不知道相差多少。连续型变量可以呈现为某个范围内的任意值,并同时表示了顺序和数量。年龄Age就是一个连续型变量,它能够表示像14.5或22.8这样的值以及其间的其他任意值。很清楚,15岁的人比14岁的人年长一岁。

    类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor) 。因子在R中非常重要,因为它决定了数据的分析方式以及如何进行视觉呈现。

    函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1...k](其中k是名义型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。要表示有序型变量,需要为函数factor()指定参数ordered=TRUE。通过指定levels选项来覆盖默认排序。

    (1) 因子类型的使用

    patientID <- c(1, 2, 3, 4)
    age <- c(25, 34, 28, 52)
    diabetes <- c("Type1", "Type2", "Type1", "Type1") 
    status <- c("Poor", "Improved", "Excellent", "Poor")
    diabetes <- factor(diabetes)
    status <- factor(status, order=TRUE)    # 有序型变量
    patientdata <- data.frame(patientID, age, diabetes, status) 
    str(patientdata)
    summary(patientdata)  

    3480e077-ff0f-eb11-8da9-e4434bdf6706.png

    1.6 列表

    列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。例如,某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。

    可以使用函数list()创建列表:

    mylist <- list(object1, object2, ...)

    其中的对象可以是目前为止讲到的任何结构。

    你还可以为列表中的对象命名:

    mylist <- list(name1=object1, name2=object2, ...)

    (1) 列表的创建

    本例创建了一个列表,其中有四个成分:一个字符串、一个数值型向量、一个矩阵及一个字符型向量。可以组合任意多的对象,并将它们保存为一个列表。

    g <- "My First List" 
    h <- c(25, 26, 18, 39) 
    j <- matrix(1:10, nrow=5)
    k <- c("one", "two", "three")
    mylist <- list(title=g, ages=h, j, k)
    mylist  

    3880e077-ff0f-eb11-8da9-e4434bdf6706.png

    (2) 列表的索引

    可以通过在双重方括号中指明代表某个成分的数字或名称来访问列表中的元素。

    mylist[[2]] 
    mylist[["ages"]]    

    3e80e077-ff0f-eb11-8da9-e4434bdf6706.png

    2.R的运算以及常用函数

    2.1 R的四则运算法则

    4580e077-ff0f-eb11-8da9-e4434bdf6706.png

    R数字的四则运算+,-,*,/和算数中的四则运算时一致的:

    2 + 3
    2 - 3
    2 * 3
    2 / 3

    4980e077-ff0f-eb11-8da9-e4434bdf6706.png

    我们需要注意R的vector和matrix的运算。在R中,vector和matrix的+,-,*,/ 指的是相同位置元素之间的 +,-,*,/。

    (1) 向量的四则运算法则:

    x <- c(1, 2, 3)
    y <- c(4, 5, 6)
    x + y
    x - y 
    x * y
    x / y

    4b80e077-ff0f-eb11-8da9-e4434bdf6706.png

    (2) 矩阵的四则运算法则:

    x <- matrix(1:6, nrow = 3, ncol = 2)
    y <- matrix(3:8, nrow = 3, ncol = 2)
    x+y
    x-y
    x*y
    x/y

    4f80e077-ff0f-eb11-8da9-e4434bdf6706.png

    (3) 矩阵与矩阵的乘法:

    矩阵相乘的函数是%*%,同样的,我们要求第1个矩阵的列数(column)和第2个矩阵的行数(row)相同

    x <- matrix(1:6, nrow = 2, byrow = T)
    y <- matrix(7:12, nrow = 3, byrow = T)
    x %*% y

    5380e077-ff0f-eb11-8da9-e4434bdf6706.png

    矩阵乘法中,需要注意,当矩阵和向量相乘时,把向量当成一个列数为1的矩阵即可。

    x <- matrix(1:6, nrow = 2, byrow = T)
    x %*% c(1, 2, 3)

    5680e077-ff0f-eb11-8da9-e4434bdf6706.png

    (4) 矩阵的转置:t()

    x <- matrix(1:6, nrow = 2)
    t(x)

    5a80e077-ff0f-eb11-8da9-e4434bdf6706.png

    2.2 R的逻辑运算

    5d80e077-ff0f-eb11-8da9-e4434bdf6706.png
    manager <- c(1, 2, 3, 4, 5) 
    date <- c("10/24/08", "10/28/08", "10/1/08", "10/12/08", "5/1/09") 
    country <- c("US", "US", "UK", "UK", "UK") 
    gender <- c("M", "F", "F", "M", "F") 
    age <- c(32, 45, 25, 39, 99) 
    q1 <- c(5, 3, 3, 3, 2) 
    q2 <- c(4, 5, 5, 3, 2) 
    q3 <- c(5, 2, 5, 4, 1) 
    
    leadership <- data.frame(manager, date, country, gender, age, 
                             q1, q2, q3, stringsAsFactors=FALSE)
    leadership
    leadership$agecat[leadership$age  > 75]  <- "Elder" 
    leadership$agecat[leadership$age >= 55 &  
                      leadership$age <= 75]  <- "Middle Aged" 
    leadership$agecat[leadership$age  < 55]  <- "Young"
    leadership

    5f80e077-ff0f-eb11-8da9-e4434bdf6706.png

    2.3 常用函数

    在探索数据的阶段,常常会先探索数据分布的一些统计量,如求和,均值,标准差,方差,中值,分位数等。对vector,R有函数可以直接得到这些统计量,sum()(求和), mean()(均值), sd()(标准差), var()(方差), median()(中值), quantile()(分位数)。

    x <- 1:10
    sum(x)
    mean(x)
    sd(x)
    var(x)
    median(x)
    quantile(x)

    6080e077-ff0f-eb11-8da9-e4434bdf6706.png

    对matrix, R有函数rowMeans(), colMeans()可以得到每一行或者每一列的平均值(注意:M要大写哦),而rowSums,colSums可以得到每一行或者每一列的和(注意:S要大写哦)

    x <- matrix(1:6, 3, 2)
    rowMeans(x)
    colMeans(x)
    rowSums(x)
    colSums(x)

    6280e077-ff0f-eb11-8da9-e4434bdf6706.png

    R的基本函数库里没有函数可以直接计算,方差,标准差等其他信息,我们可以用apply()函数。apply(X,MARGIN,FUN)的参数主要有3个,X通常是一个matrix, MARGIN通常的取值有两个,1或者2,1表示按照行计算,2表示按照列计算,FUN指的是一个函数。

    x <- matrix(1:6, 3, 2)
    apply(x, 1, sd)   # 计算x每一行的标准差
    apply(x, 2, quantile)   # 计算x每一列的分位数
    apply(x, 1, mean)     # 计算x每一行的均值

    6680e077-ff0f-eb11-8da9-e4434bdf6706.png

    函数length()可以输出vector的长度,dim()可以输出matrix的2个维度

    x <- rep(2, 8)
    length(x)
    y <- matrix(1:10, 5, 2)
    dim(y)

    6a80e077-ff0f-eb11-8da9-e4434bdf6706.png

    函数rnorm()可以产生服从正态分布的随机数

    x <- rnorm(50)    # 产生50个服从标准正态分布的随机数
    x
    hist(x, breaks = 10, cex.lab = 1.5, cex.axis = 1.5)
    abline(v = 0, col = "red", lty = 2, lwd = 2)
    y <- rnorm(50, mean = 50, sd = 0.2)   # 产生50个服从均值是50,标准差是0.2的正态分布随机数
    y
    hist(y, cex.lab = 1.5, cex.axis = 1.5)
    abline(v = 50, col = "red", lty = 2, lwd = 2)

    6c80e077-ff0f-eb11-8da9-e4434bdf6706.png

    7280e077-ff0f-eb11-8da9-e4434bdf6706.png

    有时候我们需要重复我们的计算或者实验,这时我们需要用到set.seed()函数固定一个产生随机数的种子。下面的形式可以保证我们每次运行产生一样的随机数

    set.seed(123)
    rnorm(5)

    7380e077-ff0f-eb11-8da9-e4434bdf6706.png

    函数cor()可以计算两个vector的相关关系

    x <- rnorm(100)
    y <- x + rnorm(100, 0, 0.2)
    cor(x, y)
    plot(x, y, col = "blue", pch = 20, cex.lab = 1.5, cex.axis = 1.5)

    7580e077-ff0f-eb11-8da9-e4434bdf6706.png

    函数summary()可以得到matrix或者data frame的每一列的基本信息,包括最大值,最小值,中间值,25%和75%分位数,均值。

    x <- matrix(rnorm(100*3), 100, 3)
    summary(x)

    7880e077-ff0f-eb11-8da9-e4434bdf6706.png

    3.R语言编程结构

    3.1 if-else语句

    (1) 在R中,if-else语句的形式通常如下:

    a <- 3
    if (a == 4) {
      x <- 2
      y <- 3
    } else {
      x <- 3
      y <- 4
    }
    x
    y

    7a80e077-ff0f-eb11-8da9-e4434bdf6706.png

    需要根据不同条件执行不同代码时,使用函数if(), 在括号里写入判断的语句,在上面的例子中,我们根据a == 4是TRUE, 还是FALSE执行不同的语句。

    如果a=4, 那么a == 4是TRUE, 执行if()后面大括号{ }内的代码;

    如果a!=4, 那么a == 4是FALSE, 执行else后面大括号{ }内的代码。

    (2) if()也可以单独使用,例如:

    if (a == 4) {
      x <- 2
      y <- 3
    }

    7b80e077-ff0f-eb11-8da9-e4434bdf6706.png

    (3) 多个if-else可以一起使用,例如:

    if (a == 4) {
      x <- 2
      y <- 3
    } else if (a == 5){
      x <- 3
      y <- 4
    } else {
      x <- 5
      y <- 6
    }

    (4) if-else还可以有如下的使用方式:

    # v = if(cond) expression1 else expression2 # v可能取expression1或者expression2的结果,这取决于cond是否为真。
    x = 2
    y = if(x==2) x else x+1
    y

    7c80e077-ff0f-eb11-8da9-e4434bdf6706.png

    3.2 循环

    (1) For循环

    # 我们如果要计算1到10的平均值
    s <- 0
    for (i in 1:10) {
      s <- s + i
    }
    s / 10

    7d80e077-ff0f-eb11-8da9-e4434bdf6706.png

    (2) while循环(一)

    s <- 0
    i <- 1
    while(i<=10) {
      s <- s + i
      i <- i + 1
    }
    s / 10

    7e80e077-ff0f-eb11-8da9-e4434bdf6706.png

    (3) while循环(二)

    s <- 0
    i <- 1
    while(TRUE) {
      s <- s + i
      i <- i + 1
      if(i > 10) break
      
    }
    s / 10

    8080e077-ff0f-eb11-8da9-e4434bdf6706.png

    (4) repeat循环

    s <- 0
    i <- 1
    repeat {
      s <- s + i
      i <- i + 1
      if(i > 10) break
      
    }
    s / 10

    8280e077-ff0f-eb11-8da9-e4434bdf6706.png

    3.3 自定义R函数

    在R中,函数可以通过如下形式定义:

    # 自定义函数求一个向量中所有偶数的和
    sumEvenNum = function(v){
      even_num = v[(v %% 2)==0]
      sum_even_num  = sum(even_num)
      return(sum_even_num)
    }
    x = 1:10
    sumEvenNum(x)

    8680e077-ff0f-eb11-8da9-e4434bdf6706.png

    赋值号(=或者<-)左边是自定义函数的函数名

    赋值号右边是定义函数的函数function()

    函数function()括号内是我们要传到自定义函数的参数

    大括号内写函数的代码

    最后使用函数return()返回结果

    结语

    本次的R语言语法精讲(一)主要介绍了 R语言的数据结构,R语言的运算以及R语言的编程结构。学完本文后,您将可以具备初步的R语言编程技巧,并能编写大部分程序以及算法。

    展开全文
  • R语言简介
  • 什么是R语言 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。简单来说,R是一门统计计算语言,是一套开源的数据分析解决...
  • "R是一种面向统计学的开源编程语言和软件环境,它由语言,以及带调试器、绘图、系统函数访问和脚本的运行时环境组成。R语言在统计软件开发领域十分受欢迎,也是...Linuxlinks的这篇文章收集了七款优秀R语言图形用...
  • R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。 R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和...
  • R 语言入门

    热门讨论 2021-03-07 11:33:02
    R语言入门 Author:tony R语言是用于统计分析、绘图的语言和操作环境。它是一个自由、免费、源代码开放的软件,与MATLAB一样,也是一个用于统计计算和统计制图的优秀工具。 本博客致力于推广并领广大编程、建模爱好者...
  • R语言入门1---R语言介绍以及学前注意事项

    万次阅读 多人点赞 2018-03-28 16:16:07
    R语言是从贝尔实验室的S语言演变而来的,基于S语言开发的商业软件Splus,可以方便的编写函数、建立模型,具有良好的扩展性,取得了巨大成功。1995年由新西兰Auckland大学统计系的Robert Gentleman,Ross Ihaka,Bill...
  • R语言安装包

    2018-04-01 11:10:47
    R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
  • 这一份笔记follow了两本非常优秀R语言教材,分别是Robert I.Kabacoff的《R语言实战》和Peter Dalgaard的《R语言统计入门》,两本教材的思路有所不同,我会根据我自己的思路尽量降低学习门槛,综合来写教程。...
  • 第一次接触R中调用C,网上搜索这个问题,有关的记录太少了,并且遇到了不少问题,在此记录这个过程。 这也是我的第一篇博客,有和不妥的望指出。 参考链接: https://www.cnblogs.com/lmj-sky/p/10308988.html ...
  • R与RStudio的安装教程一、什么是R二、什么是RStudio三、R和RStudio安装前说明四、安装R五、安装RStudio六、测试软件安装是否成功七、...RStudio是一款R语言的IDE,R自带的环境操作起来可能不是方便,而Rstudio很好地
  • R语言安装教程

    2020-12-11 15:23:22
    R语言: R 编程语言被广泛应用在统计科学和商业领域。在各种编程语言排名中 R 语言的排名都很靠前。它是一款集成了数据操作、统计,以及可视化功能的优秀开源软件。免费,开源是 R 重要的特点; RStudioRStudio ...
  • Rstudio是一款第三方开发的非常好用的R语言集成开发环境 它是一款免费的软件,相比于R默认的Rgui,Rstudio具有更丰富的功能,在使用时也更加人性化,比如软件将R控制台、绘图窗口、帮助窗口集成到同一个界面下,并且...
  • 那么问题来了:r语言和python有必要都学吗R:R语言由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman于1995设计出来(由于两人的名字均以 ‘R’ 字母开头,因此命名为R语言),现在由“R核心开发团队“负责开发。...
  • 大家好!欢迎关注小号:医学统计数据分析,今天我们来介绍一下医学统计学中常用统计学方法的R语言基本操作。 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个...RStudio是一款R语言的集成开发环境(...
  • R语言基础学习01

    2020-09-06 09:20:08
    R语言基础01 一、R语言的起源与兴起?二、R语言特点三、R语言的基本类型四、数据类型转换五、数据结构 一、R语言的起源与兴起? 1993年,R的最初版本发布给研究人员使用,解决复杂数据统计分析任务,并用多样化的...
  • R语言学习资源

    2017-08-11 17:40:13
    统计之都 : 国内质量最高的统计网站,有一些关于统计和R语言优秀博客以及与R有关的会议通知。 肖凯博客(需翻墙): 很有质感的博客,有大量 R 语言应用的案例。 4.2 数据科学相关书籍
  • 有些业界从业人士对R语言的价值并不认可,他们认为R语言只针对统计分析。R语言的确提供了很全面的统计分析的软件包,比如CRAN,Bioconductor,...但是,R语言的很多优秀特性并不为R语言社区以外的人所熟知。在本文中...
  • 我之前预告过的 R 语言新书,起名为《R语言编程—基于tidyverse》,本书的目的是为了在国内推广 R 语言和 R 语言最新技术,电子版将始终跟踪最新并免费分享。本书非常适合新手 R 语言入门,老手 R 知识汰旧换新。是...
  • R 语言——安装

    2019-12-10 21:31:36
    1.什么是R R是用于统计分析、绘图的语言和操作环境。...RStudio是一款R语言的IDE,R自带的环境操作起来可能不是方便,而Rstudio很好地解决了这个问题,而且它还具有调试、可视化等功能,支持纯R脚本、R...
  • R语言编程基础

    2020-09-06 11:24:20
    R语言R语言编程基础优点管理空间的函数基本数据类型数据类型转换运算符 R语言编程基础 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图...
  • R语言复习

    2020-01-01 18:02:33
    2.额外建议复习R语言实验二到八,点此跳转 重点 注意: 1.R语言区分大小写 2.重点看书中代码清单 3.文章中标*为重点 第一章 *P4 图1-1 典型的数据分析步骤 *P21-P29 七个数据结构的例子 默认值 1.标量 2.向量 ...
  • R语言

    2011-11-27 12:51:08
    R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。 R 是统计领域广泛使用的诞生于 1980年左右的 S 语言的一个分支。 R是S语言的一种实现。S语言是由 AT&T贝尔实验室...
  • R语言简介

    2016-12-19 23:00:04
    我们Hadoop+R爱好者建立了一个Hadoop和R语言的学习交流的高级LV1 QQ群(279441740),欢迎加入学习、交流、讨论、下载。 R语言简介 R语言是一种为统计计算和图形显示而设计的语言环境,是贝尔实验室(Bell ...
  • 数据整理和清洗是任何统计分析的前提,也是最为困难的一个环节,很多软件也提供了数据整理和清洗的功能。...例如R语言中的 Tidyverse是一系列优秀R包的合集,其中最常用的7个package包括ggplot2/tibble/tidyr/readr/...
  • R语言 整合数据

    千次阅读 2020-04-15 10:19:03
    R语言中提供了许多用来整合和重塑数据的强大...虽然在R语言中有很多优秀的函数,如aggregate和daply可以对数据框统计,但sql功能强大,不仅能实现数据的清洗、统计、运算,还可以实现数据存储、控制、定义和调用 lib...
  • R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的...本资源可为学习R语言者提供学习视频资料,由于文件比较大,以百度云链接的形式分享

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,571
精华内容 20,628
关键字:

r语言优秀