跳至主要內容

R语言基础语法

Akkiri...大约 5 分钟数据分析R语言

常用操作

  1. 安装包

    install.packages("openxlsx")
    

    提示

    openxlsx 为包名,必须要加引号(在 R 中,单双引号可通用)。

  2. 加载包

    library(openxlsx)
    
  3. 更新包

    update.packages("openxlsx")
    update.packages()	# 更新所有包
    
  4. 删除包

    remove.packages("openxlsx")
    
  5. 获取或设置当前路径

    getwd()
    setwd("D:/R-4.2.3")
    

    注意

    路径中的 “ \ ” 必须用 “ / ” 或 “ \ ” 代替。

  6. 赋值

    R 标准语法使用 <--> 来赋值,而不是 =,代码如下:

    x <- 1:10
    x + 2
    
    ## [1]  1  2  3  4  5  6  7  8  9 10
    

    提示

    R 也允许使用 “=” 赋值,建议使用更现代和简洁的 “=” 来赋值。

  7. 基本运算

    • 数学运算

      • + - * /^(求幂)、%%(按模取余)、%/%(整除)。
    • 比较运算

      • ><>=<===!=

      • identical(x, y)—— 判断两个对象是否严格相等;

      • all.equal(x, y)dplyr::near(x, y)—— 判断两个浮点数是否近似相等(误差为 1.5e^-8)。

        0L == 0
        ## [1] TRUE
        
        identical(0L, 0)
        ## [1] FALSE
        
        sqrt(2)^2 == 2
        ## [1] FALSE
        
        all.equal(sqrt(2)^2, 2)
        ## [1] TRUE
        
    • 逻辑运算

      • |(或)、&(与)、!(非)、xor()(异或)。
  8. 基本数据类型

    • R 语言的基本数据类型
      • numeric—— 数值型,又分为 integer(整数型)和 double(浮点型);
      • logical—— 逻辑型,只有 TRUEFALSE
      • character—— 字符型,引号括起来的若干字符。
    • R 语言使用 NA 表示缺失值,NA 具有 “传染性”,即 NA 参与的计算,结果都会变成 NAR 语言自带的很多函数都提供 na.rm 参数设置,以便于设定计算时是否忽略缺少值。
    • 可用函数 class(x) / typeof(x) / mode(x) 来查看对象 x 的类型,str(x) 显示对象 x 的结构。
  9. 保存和载入数据

    save(x, file = "data/dat.Rda")
    load("data/dat.Rda")
    
  10. 清屏和清除变量

    使用快捷键 Ctrl + L 或单击命令窗口右上角的 “小刷子” 图标可对命令窗口清屏。

    若要清除当前变量,使用以下命令:

    rm(x)						# 清除变量 x
    rm(list = ls(all = TRUE))	  # 清除当前所有变量
    

    提示

    单机 Environment 窗口的 “小刷子” 图标也可以清除当前所有变量。

  11. 获取帮助

    • 函数帮助

      命令窗口执行:

      ?plot
      
    • 在线帮助

      若想根据某算法的名字或关键词,搜索哪个包能实现该算法:

      RSiteSearch("network")
      

数据结构:向量、矩阵、多维数组

R 中常用的数据结构可划分为:

  • 同质数据类型(homogenerous),即所储存的一定是相同类型的元素,包括向量、矩阵、多维数组。
  • 异质数据类型(heterogenerous),即可以储存不同类型的元素,这提高了储存灵活性,但降低了效率,包括列表、数据框。

另外,还有字符串、日期时间数据、时间序列数据、空间地理数据等。

R 语言中的数据结构还有一种从广义向量(序列)的角度进行划分。

  • 原子向量:各个值都是同类型的,包括六种类型:logical、integer、double、character、complex、raw
  • 列表:各个值可以是不同类型的,NULL 表示空向量(长度为 0 的向量)。

向量有两个属性:type(类型)和 length(长度);还能以属性的方式向向量中任意添加额外的 metadata(元数据),属性可用来创建拓展向量,以执行一些新的操作。常用的拓展向量有:

  • 基于整数型向量构建的因子;
  • 基于数值型向量构建的日期和日期时间;
  • 基于数值型向量构建的时间序列;
  • 基于列表构建的数据框和 tribble

向量(一维数组)

向量是由一组相同类型的原子值构成的序列,可以是一组数值、一组逻辑值、一组字符串等。

常用的向量有数值向量、逻辑向量、字符向量。

  1. 数值向量

    数值向量就是由数值组成的向量,单个数值是长度为 1 的数值向量,例如:

    x = 1.5
    x
    
    ## [1] 1.5
    

    我们可以用 numeric() 创建一个全为 0 的指定长度的数组向量,如下所示:

    numeric(10)
    
    ## [1] 0 0 0 0 0 0 0 0 0 0
    

    在 R 中经常使用函数 c() 将多个对象合并在一起:

    c(1, 2, 3, 4, 5)
    
    ## [1] 1 2 3 4 5
    
    c(1, 2, c(3, 4, 5))
    
    ## [1] 1 2 3 4 5
    

    创建等差的数值向量,用 : 或者函数 seq(),基本格式为:

    seq(from, to, by, length.out, along.with, ...)
    
    • form:设置首项(默认为 1)。
    • to:设置尾项。
    • by:设置等差值(默认为 1 或 -1)。
    • length.out:设置序列长度。
    • along.with:以该参数的长度作为序列长度。
    1:5
    ## [1] 1 2 3 4 5
    
    seq(1, 10, 2)
    ## [1] 1 3 5 7 9
    
    seq(3, length.out = 10)
    ## [1]  3  4  5  6  7  8  9 10 11 12
    

    创建重复的数值向量用函数 rep(),基本格式为:

    rep(x, times, length.out, each, ...)
    
    • x:为要重复的序列;
    • times:序列的重复次数;
    • length.out:设定所产生的序列的长度;
    • each:设置每个元素分别重复的次数(默认为 1 )。
    x = 1:3
    
    rep(x, 2)
    ## [1] 1 2 3 1 2 3
    
    rep(x, each = 2)
    ##[1] 1 1 2 2 3 3
    
    rep(x, c(2, 1, 2))
    ## [1] 1 1 2 3 3
    
    rep(x, each = 2, length.out = 4)
    ## [1] 1 1 2 2
    
    rep(x, times = 3, each = 2)
    ## [1] 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3
    

    向量可以做 +、-、*、/ 四则运算,即对应元素分别做运算的向量化运算。

    2:3 + 1:5
    
    ## [1] 3 5 5 7 7
    

    注意

    将两个不同长度的向量做运算,短的会自动循环补齐以配合长的。

  2. 逻辑向量

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.5