跳转至

基础知识

快速查询注释

(1)粗略看下参数内容: 光标悬停在函数名上 (2)详细看下函数设置: 光标悬停在函数名上,再按F1,效果同help(function)、?function

常用快捷键

Alt+- 赋值符号“<-”

Ctr+shift+M 管道符号“%>%”

Ctr+Alt+I R程序框

Ctr+Shift+C #注释符

Alt+L 隐藏代码块

Alt+Shift+L Rmd中展开代码块

Alt+O隐藏所有代码块

Alt+Shift+O 展开所有隐藏的代码块

常见符号

df$column 引用df数据中的指定字段数据

~定义匿名函数,就是简单函数,~ 前面代表因标量,后面代表自变量

function(...)接收任意数量的参数,利用循环依次取出

%in% 是用于测试向量中元素是否属于另一个向量或列表的运算符。它返回一个逻辑向量

基础功能

getwd()获得当前工作目录

setwd()设置当前工作目录

options()用于设置和查询全局选项

print()、printf()、sprintf()进行变量输出格式化输出格式化字符串输出

cat()结合paste()将多个字符串数据进行输出,比sprintf输出更灵活

paste()将多个对象(字符串、数字等)连接成一个字符串,字符串间会自带空格,用paste0()不带空格


数据类型

^a4f511

特殊值

包括NA(Missing Values),NULL,NaN,Inf/-Inf

is.na() 缺失值,软件识别不出来,不可用

is.null() 空值

is.nan() 非数值,数学计算中出现无定义的结果时,如0/0负数的平方根

is.infinite() 正无穷大/负无穷大

数据类型的判断

typeof() 查找数据类型

is.numeric() 判断是否为数值型,反馈逻辑型数值,is.numeric(FALSE) 返回假!

is.character() 判断字符型,同样is.character(FALSE)返回假

is.logical() 判断逻辑型,同样is.logical(FALSE)返回假

数据类型的转换

[[as.integer()]]将对象转换为整型

as.numeric() 将对象转换为数值型,不能转换的输出NA,其中as.numeric(T)输出为1,as.numeric(F)输出为0

as.double()双精度浮点型,在R中数值型和浮点型是用一种类型的数据

as.character() 将对象转换为字符型

as.logical() 将对象转换为逻辑型(其中0为FALSE,其他数值为TRUE),不能转换的输出NA

as.matrix()将其他数据对象转换为矩阵

as.factor()转化为因子类型


数据结构

向量

  • 创建

    c() 给定的对象组合成一个向量

    seq() 生成数值向量

    seq_along()生成与指定对象长度相等的序列

    rep()创建重复的值或向量

    as.vector() 转换其他数据对象为向量

  • 生成新向量

    expand.grid() 求多个向量间所有的组合

  • 属性

    length() 向量长度,即元素的个数

    names() 可以实现赋名称操作,也可以看向量名称

    set_names() 向量命名,跟下标相区分

  • 向量的索引

  • append()添加元素

    • 删除对象

      rm() 删除指定对象

    • 离散化 cut()将连续型的变量分成指定宽度的区间
  • my_vector[!is.infinite(my_vector)]布尔值的筛选思想

    which.max()返回向量中的最大值的索引位置

因子(factor)

factor数据结构,针对类别数据,可以理解为一种特殊的向量

  • 创建

    factor()将一个向量转换为因子(factor)类型的数据

  • 属性

    levels()获取因子(factor)对象的水平(levels)

    nlevels()获取因子(factor)对象的水平数量

  • droplevels()删除factor对象中未使用的水平

  • relevel() 重新指定factor对象的水平顺序

列表(list)

  • 创建 list() 创建列表,他这个列表跟python里不太一样,可以含向量和矩阵?

    nulist() 解散列表

  • 属性 length()测量列表元素个数

    names() 可以获得列表的名称

  • 列表的索引

数组

  • 创建

    array() 创建多维数组,指定字段名称

矩阵

  • 创建

    matrix()

  • 生成新矩阵

  • 属性

    dim() 获取或设置对象的维度

    ncol() 获取矩阵或数据框的列数

    nrow() 获取矩阵或数据框的行数

    colnames()获取或设置矩阵的列名

    rownames() 获取或设置矩阵的行名

    dimnames() 获取或设置矩阵的行名和列名

  • 矩阵的索引

数据框(DataFrame 简称DF)

(特殊的列表,同python中的df数据结构)

  • 创建

    data.frame() 创建df数据结构

  • 属性

    dim() 获得维度

    ncol() 获得列数

    nrow() 获得行数

    colnames() 获取或设置数据框的列名

    rownames() 获取或设置数据框的行名

    dimnames() 获取或设置数据框的行名和列名

    names()返回列名称,相当于每一列视为列表

  • df索引

    一般在[]列表中用“column”字符串的形式表明行、列标题,跟指明df,直接使用column相区分

    df[]返回的结果是dt(data tibble)简化数据框!

    df[[]]和df$colum返回一个列向量!只有列向量才能运行某些统计运算

    • 生成新数据框

      rbind() 纵向合并数据框

      cbind() 横向合并数据框

  • na.omit() 删除缺失值所在的行数据

    • 改属性

      df$column <-as.integer(df$column)

      df <- df %>% mutate(column = as.integer(column));利用mutate()和across()实现多个列属性同时修改

    • 改行列名 rename()用新列明替代旧列名

      colnames(df) <- c("New_A", "New_B")修改列标题,行标题同理

  • top_n()根据指定字段权重查看df前多少行

tibble

R中对df的优化后的数据结构,跟tidyverse包更加契合。 http://blog.fens.me/r-tibble/

  • 创建

    tibble()用于创建 Tibble 数据框

    tribble() 创建小规模的示例数据框,大规模用df数据框

  • 生成新tibble

    as_tibble(): 将其他数据结构(如数据框)转换为tibble

  • 其他操作类似df,主要数理两者差异!


基本运算和常用函数

向量

一般能用在向量中的函数,也能用在矩阵(视为列/行向量)、数组(视为列/行向量)、数据框(视为列向量)中。

排序函数

sort(x)获得排序的后的向量值

order(x) 排序后的向量值对应的下标向量

rank() 返回向量中元素的排名向量(这个元素排第几

rev() 反转,矩阵转置?

矩阵和数据框

字符串

  • format()格式化数值或日期时间对象的显示方式