R(五): R常用函数

工作笔记记录,会持续更新....

目录:

  • apply
  • tapply
  • lapply
  • sapply
  • merge

apply函数:


  • apply:apply的中文意思是应用,这个函数的意思是通过将一个函数应用到矩阵或数组中,返回一个向量或数组
  • 语法:apply(X, MARGIN, FUN, ...)  , 其中X为一个数组;MARGIN为一个向量(表示要将函数FUN应用到X的行还是列),1:表示取行,2:表示取列,c(1,2)表示行、列都计算。
  • 示例:

    > ma <- matrix(c(1:4, 1, 6:8), nrow = 2);ma
         [,1] [,2] [,3] [,4]
    [1,]    1    3    1    7
    [2,]    2    4    6    8
    
    > apply(ma, 1, sum)
    [1] 12 20
    > apply(ma, 2, sum)
    [1]  3  7  7 15

tapply:


  • tapply:是对向量中的数据进行分组处理,而非对整体数据进行处理
  • 语法: tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE),
    1. 其中X通常是一向量;
    2. INDEX是一个list对象,且该list中的每一个元素都是与X有同样长度的因子;
    3. FUN是需要计算的函数;
    4. simplify是逻辑变量,TRUE(默认值),且函数FUN的计算结果总是为一个标量值,那么函数tapply返回一个数组;若取值为FALSE,则函数tapply的返回值为一个list对象。需要注意的是,当第二个参数INDEX不是因子时,函数 tapply() 同样有效,因为必要时 R 会用 as.factor()把参数强制转换成因子
  • 示例:

    > da
       year province sale
    1  2007        A    1
    2  2007        B    2
    3  2007        C    3
    4  2007        D    4
    5  2008        A    5
    6  2008        C    6
    7  2008        D    7
    8  2009        B    8
    9  2009        C    9
    10 2009        D   10
    > attach(da)
    > tapply(sale,list(year,province),mean)
             A  B C  D
    2007  1  2 3  4
    2008  5 NA 6  7
    2009 NA  8 9 10

lapply:


  • lapply: (list apply)针对list的apply函数
  • 语法: lapply(X, FUN, ...)   lapply的返回值是和一个和X有相同的长度的list对象,这个list对象中的每个元素是将函数FUN应用到X的每一个元素
  • 示例:

    #外卖示例数据
    s<-data.frame(shop_id=c(‘001‘,‘002‘),saled=c(35,78),
                  takeout_cost=c(30,60),delivery_time=c(10,20))
    
    lapply(s,function(x){
      if(is.numeric(x)){
        mean(x)
      }
      else{
        length(x)
      }
    })

  • 结果:$shop_id [1] 2 $saled [1] 56.5 $takeout_cost [1] 45 $delivery_time [1] 15

sapply:


  • sapply:sapply函数和Lapply函数类似,也是对List进行处理,只是在返回结果上,sapply会根据结果的数据类型和结构,重新构建一个合理的数据类型返回
  • 语法:sapply(X, FUN,..., simplify = TRUE, USE.NAMES = TRUE)
  • 示例:如上例,调用sapply函数返回结果为:
    shop_id      saled  takeout_cost delivery_time
    2.0          56.5          45.0          15.0

merge:


  • merge: merge是R语言中用来合并数据框的函数
  • 语法:merge(x, y, by = intersect(names(x), names(y)),  by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all,  sort = TRUE, suffixes = c(".x",".y"), incomparables = NULL, ...)
    1. x,y:用于合并的两个数据框
    2. by.x,by.y:指定依据哪些行合并数据框,默认值为相同列名的列.
    3. all.x,all.y:指定x和y的行是否应该全在输出文件
    4. sort:by指定的列是否要排序
    5. suffixes:指定除by外相同列名的后缀
    6. incomparables:指定by中哪些单元不进行合并
  • 示例代码:

    #数据:
    w1:
    NAME    SCHOOL    CLASS    ENGLISH
    A    S1    10    85
    B    S2    5    50
    A    S1    4    90
    A    S1    11    90
    C    S1    1    12
    
    w2:
    NAME    SCHOOL    CLASS    MATHS    ENGLISH
    A    S3    5    80    88
    B    S2    5    89    81
    C    S1    1    55    32
    
    merge(w1, w2, all = T)
    
      NAME SCHOOL CLASS ENGLISH MATHS
    1    A     S1     4      90    NA
    2    A     S1    10      85    NA
    3    A     S1    11      90    NA
    4    A     S3     5      88    80
    5    B     S2     5      50    NA
    6    B     S2     5      81    89
    7    C     S1     1      12    NA
    8    C     S1     1      32    55
    
    merge(w1, w2, by = c("NAME", "SCHOOL", "CLASS"), all = T)
    
      NAME SCHOOL CLASS ENGLISH.x MATHS ENGLISH.y
    1    A     S1     4        90    NA        NA
    2    A     S1    10        85    NA        NA
    3    A     S1    11        90    NA        NA
    4    A     S3     5        NA    80        88
    5    B     S2     5        50    89        81
    6    C     S1     1        12    55        32

时间: 2024-10-24 05:10:58

R(五): R常用函数的相关文章

R语言:常用函数【转】

数据结构 一.数据管理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:对象存储模式与类型 nam

SQL Server(五)——常用函数

1.数学函数:操作一个数据,返回一个结果 --取上限ceiling select code,name,ceiling(price) from car ; --取下限 floor select floor(price) from car --ABS 绝对值 --派 PI(),圆周率,括号里不需要加东西 --ROUND 四舍五入 select ROUND(3.76,0) --SQRT 开根号 --SQUARE 平方,乘以自己 2.字符串函数: --转换大写 upper select upper(pi

Python 学习笔记(五)常用函数

Python内建函数 四舍五入: round() 绝对值: abs() 1 >>> round(1.543,2) 保留两位小数,四舍五入为1.54 2 1.54 3 >>> round(1.546,2) 保留两位小数,四舍五入为1.55 4 1.55 5 >>> round(-1.536,2) 6 -1.54 7 >>> abs(5) 8 5 9 >>> abs(-5) 绝对值为5 10 5 math 模块 1 &g

SQL Server进阶(十五)常用函数

在SQL 2012基础教程中列出子句是按照以下顺序进行逻辑处理. FROM WHERE GROUP BY HAVING SELECT ORDER BY IF EXISTS (SELECT 1 FROM TableName WHERE UserCode = @UserCode) BEGIN UPDATE TableName SET NotPushBeginTime = @NotPushBeginTime, NotPushEndTime = @NotPushEndTime WHERE UserCod

《深入浅出Mysql》——第五章 常用函数

INSERT(str ,x,y,instr)函数:将字符串 str 从第 x 位置开始,y 个字符长的子串替换为字符 串 instr IFNULL(value1,value2)函数:这个函数一般用来替换 NULL 值的 原文地址:https://www.cnblogs.com/JasonPeng1/p/12234406.html

R的变量类型和常用函数

一.R的变量类型 也可以说是数据存储方式,有: Vector: 一维阵列 Matrics: 二维阵列,其中所有元素是同一数据类型. factor: 种类变量,可使用levels函数来规定种类变量的各级别的名称.例如:levels(factor_vector) <- c("name1", "name2",...) Dataframe:二维阵列,每一列中的元素是同一数据类型,不同列的数据类型可以不同. List : 一个List中可包含多个类型对象,包括List本

R语言中apply函数

前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言本身来实现的,而向量操作是基于底层的C语言函数实现的,从性能上来看,就会有比较明显的差距了.那么如何使用C的函数来实现向量计算呢,就是要用到apply的家族函数,包括apply, sapply, tapply, mapply, lapply, rapply, vapply, eapply等. 目录

R语言之merge函数案例

R语言的merge函数可以实现类似SQL的有点类似 left join right join 或者类似union的效果. df1 = data.frame(CustomerId=c(1:6),Product=c(rep("Toaster",3),rep("Radio",3))) > df2 = data.frame(CustomerId=c(2,4,6,7),State=c(rep("Alabama",3),rep("Ohio&q

R8&mdash;批量生成文件夹,批量读取文件夹名称+R文件管理系统操作函数

一. 批量生成文件夹,批量读取文件夹名称 今日,工作中遇到这样一个问题:boss给我们提供了200多家公司的ID代码(如6007.7920等),需要根据这些ID号去搜索下载新闻,从而将下载到的新闻存到以公司ID生成的指定文件夹下!所以第一个问题就是200多个公司,不可能每一次下载,都要去点击:新建文件夹,然后对文件夹命名,too boring and monotonous.嘿嘿,幸好有R的陪伴! let's do it,来看看R如何完成这些工作! 主要用到两个函数 一. dir.create-生