前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言 常见函数知识点梳理与解析 | 精选分析

R语言 常见函数知识点梳理与解析 | 精选分析

作者头像
1480
发布2019-07-22 16:18:07
2.3K0
发布2019-07-22 16:18:07
举报
文章被收录于专栏:数据分析1480数据分析1480

目 录

1、str() 显示数据集和变量类型,并简要展示数据集情况

2、subset() 取子集

3、which.min(), which.max()和which()

4、pmin( )/ pmax( )

5、complete.cases( ) 判断对象中是否数据完全

6、grep()找出所数据框中元素所在的列值(仅数据框中)

7、assign()通过变量名的字符串来赋值

8、 split()根据因子变量拆分数据框/向量

9、unique()返回 x 但是省去重复的数值

10、round(),floor()和ceiling()

11、sign() 符号函数

12、%in% 检验x是否为集合y中的元素(x%in%y )

13、ls( )用来列出现存的所有对象

常见函数列表

14、数据管理相关

15、字符串处理函数

16、因子

17、数学计算

18、数组相关

19、逻辑运算

20、控制结构相关

21、自定义函数相关

22、输入输出

23、工作环境

24、简单统计量

25、时间序列

【往期回顾】

R语言 | 第一部分:数据预处理

R语言|第2讲:生成数据

R语言常用的数据输入与输出方法 | 第三讲

R语言数据管理与dplyr、tidyr | 第4讲

R语言 控制流:for、while、ifelse和自定义函数function|第5讲

正 文

1、str() 显示数据集和变量类型,并简要展示数据集情况

代码语言:javascript
复制
> data(mtcars)
> str(mtcars)
'data.frame':   32 obs. of  11 variables:
 $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
 $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
 $ disp: num  160 160 108 258 360 ...
 $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
 $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
 $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
 $ qsec: num  16.5 17 18.6 19.4 17 ...
 $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
 $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
 $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
 $ carb: num  4 4 1 1 2 1 4 2 2 4 ...

2、subset() 取子集

条件筛选后,mtcars_df数据集为20 obs.

代码语言:javascript
复制
> data(mtcars)
> str(mtcars)
'data.frame':   32 obs. of  11 variables:
 #……省略部分内容
 $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
 #……省略部分内容

> mtcars_df <- subset(mtcars,wt > 3)
> str(mtcars_df)
'data.frame':   20 obs. of  11 variables:
 #……省略部分内容
 $ wt  : num  3.21 3.44 3.46 3.57 3.19 ...
 #……省略部分内容

3、which.min(), which.max()和which()

which(), which.max(), which.min()返回的是位置(索引)

which(x, arr.ind = FALSE, useNames = TRUE)

x是一个向量或者数组;arr.ind = FALSE 默认返回数组索引

代码语言:javascript
复制
> set.seed(1)
> x <- rnorm(10)
> x
 [1] -0.6264538  0.1836433 -0.8356286  1.5952808  0.3295078 -0.8204684  0.4874291
 [8]  0.7383247  0.5757814 -0.3053884
> which(x > 0) #显示x>0的所有数值
[1] 2 4 5 7 8 9
> which.min(x) #显示min(x)的所有数值的位置
[1] 3
> which.max(x) #显示max(x)的所有数值的位置
[1] 4
> plot(1:10,x) #如下图
代码语言:javascript
复制
> y <- data.frame(matrix(1:10,ncol = 2))
> which(y > 5) #显示x>5的所有数值
[1]  6  7  8  9 10 
> which(y > 5,arr.ind = TRUE) #显示x>5的所有数值的位置
     row col
[1,]   1   2
[2,]   2   2
[3,]   3   2
[4,]   4   2
[5,]   5   2

4、pmin( )/ pmax( )

把多个等长度的向量按元素逐个对比,返回所有向量的第K个元素中最小(最大)值

代码语言:javascript
复制
> x <- c(1,2,3,4,5)
> y <- c(2,5,1,3,4)
> 
> pmin(x,y)
[1] 1 2 1 3 4
> pmax(x,y)
[1] 2 5 3 4 5

5、complete.cases( ) 判断对象中是否数据完全

complete.case()可以判断对象中是否数据完全,然后返回TRUE, FALSE。这一函数在去除数据框中缺失值时很有用。

代码语言:javascript
复制
> x <- matrix(c(1,2,NA,4),nrow = 4)
> x
     [,1]
[1,]    1
[2,]    2
[3,]   NA
[4,]    4
> complete.cases(x)
[1]  TRUE  TRUE FALSE  TRUE
> x[complete.cases(x),]
[1] 1 2 4

6、grep()找出所数据框中元素所在的列值(仅数据框中)

代码语言:javascript
复制
> x <- data.frame(matrix(c(1,2,NA,4),nrow = 2))
> x
  X1 X2
1  1 NA
2  2  4
> grep(1,x)
[1] 1
> grep(2,x)
[1] 1
> grep(4,x)
[1] 2

7、assign()通过变量名的字符串来赋值

代码语言:javascript
复制
> assign("x",c(1:10))
> x
 [1]  1  2  3  4  5  6  7  8  9 10

8、 split()根据因子变量拆分数据框/向量

split(x,f);x 可以为向量或者数据框,f 为对应的因子,函数以列表的形式返回

代码语言:javascript
复制
> x = data.frame(matrix(1:10,nrow = 5))
> MorFM = c("Female","Male","Female","Female","Female")
> split(x,MorFM)
$Female
  X1 X2
1  1  6
3  3  8
4  4  9
5  5 10

$Male
  X1 X2
2  2  7

> yx <- split(x,MorFM)
> yx$Female
  X1 X2
1  1  6
3  3  8
4  4  9
5  5 10
> yx$Male
  X1 X2
2  2  7

9、unique()返回 x 但是省去重复的数值

代码语言:javascript
复制
> x <- c(1:5,2:10,3,5)
> x
 [1]  1  2  3  4  5  2  3  4  5  6  7  8  9 10  3  5
> unique(x)
 [1]  1  2  3  4  5  6  7  8  9 10

10、round(),floor()和ceiling()

round()四舍五入取整;floor()向下取整;ceiling()向上取整

代码语言:javascript
复制
> round(3.5)
[1] 4
> floor(3.5)
[1] 3
> ceiling(3.5)
[1] 4

11、sign() 符号函数

sign()根据其参数向量中的数值是正值、零、负值将其分别转化为1,0,-1

代码语言:javascript
复制
> set.seed(1)
> x <- rnorm(20)
> x
 [1] -0.62645381  0.18364332 -0.83562861  1.59528080  0.32950777 -0.82046838
 [7]  0.48742905  0.73832471  0.57578135 -0.30538839  1.51178117  0.38984324
[13] -0.62124058 -2.21469989  1.12493092 -0.04493361 -0.01619026  0.94383621
[19]  0.82122120  0.59390132
> x_sign <- sign(x)
> x_sign
 [1] -1  1 -1  1  1 -1  1  1  1 -1  1  1 -1 -1  1 -1 -1  1  1  1
> plot(x,x_sign)

12、%in% 检验x是否为集合y中的元素(x%in%y )

代码语言:javascript
复制
> y <- c(1,3,5)
> 5%in%y
[1] TRUE
> 4%in%y
[1] FALSE

13、ls( )用来列出现存的所有对象

pattern是一个具名参数,可以列出所有名称中含有字符串“s”的对象。

代码语言:javascript
复制
> library(ggplot2)
> ls("package:ggplot2", pattern="geom_.a")
[1] "geom_bar"    "geom_label"  "geom_map"    "geom_path"   "geom_raster"

其他函数列表

14、数据管理相关 vector:向量 numeric:数值型向量 logical:逻辑型向量 character;字符型向量 list:列表 data.frame:数据框 c:连接为向量或列表 length:求长度 subset:求子集 seq,from:to,sequence:等差序列 rep:重复 NA:缺失值 NULL:空对象 sort,order,unique,rev:排序 unlist:展开列表 attr,attributes:对象属性 mode,typeof:对象存储模式与类型 names:对象的名字属性 15、字符串处理函数 character:字符型向量 nchar:字符数 substr:取子串 format,format C:把对象用格式转换为字符串 paste,strsplit:连接或拆分 charmatch,pmatch:字符串匹配 grep,sub,gsub:模式匹配与替换

16、因子

factor:因子 codes:因子的编码 levels:因子的各水平的名字 nlevels:因子的水平个数 cut:把数值型对象分区间转换为因子 table:交叉频数表 split:按因子分组 aggregate:计算各数据子集的概括统计量 tapply:对“不规则”数组应用函数 17、数学计算 +, -, *, /, ^, %%, %/%:四则运算 ceiling,floor,round,signif,trunc,zapsmall:舍入 max,min,pmax,pmin:最大最小值 range:最大值和最小值 sum,prod:向量元素和积 cumsum,cumprod,cummax,cummin:累加、累乘 sort:排序 approx和approx fun:插值 diff:差分 sign:符号函数 18、数组相关 array:建立数组 matrix:生成矩阵 data.matrix:把数据框转换为数值型矩阵 lower.tri:矩阵的下三角部分 mat.or.vec:生成矩阵或向量 t:矩阵转置 cbind:把列合并为矩阵 rbind:把行合并为矩阵 diag:矩阵对角元素向量或生成对角矩阵 aperm:数组转置 nrow, ncol:计算数组的行数和列数 dim:对象的维向量 dimnames:对象的维名 row/colnames:行名或列名 %*%:矩阵乘法 crossprod:矩阵交叉乘积(内积) outer:数组外积 kronecker:数组的Kronecker积 apply:对数组的某些维应用函数 tapply:对“不规则”数组应用函数 sweep:计算数组的概括统计量 aggregate:计算数据子集的概括统计量 scale:矩阵标准化 matplot:对矩阵各列绘图 cor:相关阵或协差阵 Contrast:对照矩阵 row:矩阵的行下标集 col:求列下标集 19、逻辑运算 <,>,<=,>=,==,!=:比较运算符 !,&,&&,|,||,xor():逻辑运算符 logical:生成逻辑向量 all,any:逻辑向量都为真或存在真 ifelse():二者择一 match,%in%:查找 unique:找出互不相同的元素 which:找到真值下标集合 duplicated:找到重复元素 20、控制结构相关 if,else,ifelse,switch:分支 for,while,repeat,break,next:循环 apply,lapply,sapply,tapply,sweep:替代循环的函数。 21、自定义函数相关 function:函数定义 source:调用文件 call:函数调用 22、输入输出 cat,print:显示对象 sink:输出转向到指定文件 dump,save,dput,write:输出对象 scan,read.table,load,dget:读入 23、工作环境 ls,objects:显示对象列表 rm, remove:删除对象 q,quit:退出系统 .First,.Last:初始运行函数与退出运行函数。 options:系统选项 ?,help,help.start,apropos:帮助功能 data:列出数据集 24、简单统计量 sum, mean, var, sd, min, max, range, median, IQR(四分位间距)等为统计量 sort,order,rank与排序有关,其它还有ave,fivenum,mad,quantile,stem等 25、时间序列 ts:时间序列对象 diff:计算差分 time:时间序列的采样时间 window:时间窗

说明:本文中前半部分内容为作者自行整理,后半部分内容引自网络,稍作整理(蓝色标记部分是笔者认为比较常见和使用的函数)。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据分析1480 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • R语言 | 第一部分:数据预处理
  • R语言|第2讲:生成数据
  • R语言常用的数据输入与输出方法 | 第三讲
    • 7、assign()通过变量名的字符串来赋值
      • 8、 split()根据因子变量拆分数据框/向量
        • 13、ls( )用来列出现存的所有对象
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档