基础知识
快速查询注释¶
(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)¶
数组¶
-
创建
array() 创建多维数组,指定字段名称
矩阵¶
-
创建
-
生成新矩阵
-
属性
dim() 获取或设置对象的维度
ncol() 获取矩阵或数据框的列数
nrow() 获取矩阵或数据框的行数
colnames()获取或设置矩阵的列名
rownames() 获取或设置矩阵的行名
dimnames() 获取或设置矩阵的行名和列名
数据框(DataFrame 简称DF)¶
(特殊的列表,同python中的df数据结构)
-
创建
data.frame() 创建df数据结构
-
属性
dim() 获得维度
ncol() 获得列数
nrow() 获得行数
colnames() 获取或设置数据框的列名
rownames() 获取或设置数据框的行名
dimnames() 获取或设置数据框的行名和列名
names()返回列名称,相当于每一列视为列表
-
一般在[]列表中用“column”字符串的形式表明行、列标题,跟指明df,直接使用column相区分
df[]返回的结果是dt(data tibble)简化数据框!
df[[]]和df$colum返回一个列向量!只有列向量才能运行某些统计运算
-
增
-
生成新数据框
rbind() 纵向合并数据框
cbind() 横向合并数据框
-
-
删
na.omit() 删除缺失值所在的行数据
-
改
-
查
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()格式化数值或日期时间对象的显示方式