zoukankan      html  css  js  c++  java
  • 数据科学 R语言速成

    文章更新于:2020-03-07
    按照惯例,需要的文件附上链接放在文首:

    文件名:R-3.6.2-win.exe
    文件大小:82.4M
    下载链接:https://www.lanzous.com/i9c70mf
    SHA256: DC967492639B236BA057FA3B4CA482FA64C7A8E4CAD720595592C5387D28B49F

    一、R 语言介绍

    类别 描述
    用途 R语言是一门语言,一个用于数据分析和绘图的环境,开源。
    最新版本 R Version 3.6.3( 截至2020–02-29 )
    官网 https://www.r-project.org/
    RStudio-IDE https://rstudio.com/

    二、R 语言语法知识

    (一)规则

    种属或命令 描述
    大小写 区分大小写
    命名 命名不能以数字开头
    赋值符 <-= (二者有区别)
    注释符 #
    帮助文档 help()help(命令)??.start()?命令??字符
    R对象 Vectors矢量、Lists列表、Matrices矩阵、Arrays数组、Factors因子、Data Frames数据帧/框
    数据类型 Logical(逻辑型)Numeric(数字)Integer(整型)
    Complex(复合型)Character(字符)Raw(原型)

    Logical(TRUE FALSE)、Numeric(8 9.9)、Integer(2L 34L 0L)、

    Complex(3+4i)、Character(‘a’ “great” “3.5”)、

    Raw(“Hello” 被存储为 48 65 6c 6c 6f)
    定义变量 height <- 980
    ls() 查看当前工作空间的变量,例:ls()
    rm() 删除指定的变量,例:rm(height)
    删除所有变量:rm(list = ls())
    算术运算符 +(加)、-(减)、*(乘)、/(除)、%%(取余)、%/%(整除)
    关系运算符 ><==>=<=!=
    逻辑运算符 &|!&&||
    冒号运算符 :为向量按顺序创造一系列数字
    %in% %in% 此运算符用于标识元素是否属于向量。
    %*% %*%此运算符用于将矩阵与其转置相乘。
    if 语句 if(boolean_expression) { }
    if-else语句 if(boolean_expression) { } else { }
    switch 语句 switch(expression, case1, case2, case3…)
    .libPaths() 获取包所在路径
    library() 获取所有已经安装的包
    加载包 library("package Name", lib.loc = "path to library")
    searc() 获取所有已经加载的包
    安装包 install.packages("Package Name")命令直接从CRAN网页获取软件包,并将软件包安装在R环境中。
    repeat循环 repeat { commands if(condition) { break }}
    while循环 while (test_expression){statement}
    for 循环 for (test_expression) { statement }
    break 用于终止循环
    next 用于跳过当前当次循环,和python中的continue功能相同
    定义函数 function_name <- function(arg_1, arg_2, ...) { Function body }
    字符串 字符串以单引号双引号括住,两种括号可以穿插。

    (二)编程实践

    1、定义变量

    # 下面三种方法具有相同的作用
    var1 <- c(4, 5)
    var1 = c(4, 5)
    c(4, 5) -> var1
    
    # 向量c(TRUE,1)具有逻辑和数值类的混合。 因此,逻辑类强制转换为数字类,使TRUE为1。
    var2 <- c(TRUE, 1)
    
    # 在R语言中,变量本身没有声明任何数据类型,而是获取分配给它的R - 对象的数据类型。
    # 所以R称为动态类型语言,这意味着我们可以在程序中使用同一个变量时,一次又一次地更改变量的数据类型。 
    

    定义变量

    2、算数运算符

    算数运算

    三、数据结构

    1、向量

    创建向量的方法:

    1. seq函数 seq(from = x, to = y, length.out = z)
    seq(1, 10, by = 2)
    # 1 3 5 7 9
    
    seq(1, 10, length.out = 5)
    # 1 3 5 7 9
    

    注:这四个量不可同时指定,否则报参数过多错误。

    1. rep 函数 rep(x, times)
    rep(3, 4)
    # 3 3 3 3
    
    rep(1:3, each =2)
    # 1 1 2 2 3 3
    

    访问向量的方法:

    1. 使用索引(注:从1开始)访问向量
    myc <- 1:10
    cat(myc)
    # 1 2 3 4 5 6 7 8 9 10
    myc[c(1, 5, 7, 19)]
    # 1 5 7 NA
    

    注1:如果使用负数做索引,则表示不显示这个位置的值。
    注2:如果使用布尔值做索引,则显示True 位置的值。

    向量的修改和运算:

    1. 使用 append 添加元素到向量
    myc <- 1:4
    append(myc, 'a', after = 3)
    # "1", "2", "3", "a", "4"
    
    1. 向量的相加
      如果两个向量长度一样,对应相加,如果长度不一样,则短的循环。

    2. 向量的比较
      和向量的相加类似。
      如果长度一样,对应位置相比。
      如果长度不一样,短的循环。

    返回的结果都是布尔值向量。

    # myc中是否有大于3的值
    any(myc > 3)
    
    # myc中是否全都大于3
    all(myc >3)
    

    2、矩阵和数组

    创建矩阵的方法:

    1. 使用 dim()函数
    # 创建一个2行5列的矩阵
    y <- 1:10
    dim(y) <- c(2, 5);
    
    1. 使用 matrix() 函数
    matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
    matrix(c(1, 2, 3, 11, 12, 13), nrow = 2, byrow = TRUE, dimnames = list(c("row1", "row2"), c("c.1", "c.2", "c.3")))
    
    1. 使用 rbind() cbind() 函数
    # 按行进行 拼接
    mat1 <- rbind(A = 1:3, B = 4:6); 
    
    # 使用矩阵按列进行拼接
    mat2 <- cbind(mat1, cbind(c(11, 12), c(13, 14)))
    

    矩阵的运算:

    1. 矩阵乘法使用 %*%
      第一个矩阵的行乘以第二个矩阵的列之和,放在结果的对应位置

    矩阵相乘
    如果使用 c(1,2)mat1 相乘,因为前者不够数,所以会进行按列重复填充后与后者相乘。

    1. 矩阵的求逆
  • 相关阅读:
    AcWing 125. 耍杂技的牛
    AcWing 148. 合并果子
    AcWing 907. 区间覆盖
    AcWing 908. 最大不相交区间数量
    AcWing 906. 区间分组
    AcWing 905. 区间选点
    AcWing 285. 没有上司的舞会
    AcWing 1049. 大盗阿福
    AcWing 901. 滑雪
    AcWing 91. 最短Hamilton路径
  • 原文地址:https://www.cnblogs.com/amnotgcs/p/12694357.html
Copyright © 2011-2022 走看看