sapply与自定义函数配合使用

原创 2015年07月09日 09:54:14


> a<-matrix(1:12,c(3,4))> a.df<-data.frame(a)

> a.df
  X1 X2 X3 X4
1  1  4  7 10
2  2  5  8 11
3  3  6  9 12

> sapply(a.df, function(x,y) x+y+3, y=10)    #按列对第一个参数进行function计算,第一个参数a.df是4列,所以结果是4个结果,而且计算结果的列名用原来的列名
     X1 X2 X3 X4
[1,] 14 17 20 23
[2,] 15 18 21 24
[3,] 16 19 22 25

> sapply(a.df[,1], function(x,y) x+y+3, y=10) # 第一个参数是一列
[1] 14 15 16
> sapply(a.df[,1:2], function(x,y) x+y+3, y=10)   # 第一个参数是2列
     X1 X2
[1,] 14 17

[2,] 15 18

[3,] 16 19

> sapply(a.df[,1:2], function(x,y) x+y+3, y=a.df[,4])   #多个参数的函数,都可以传列进去
     X1 X2
[1,] 14 17
[2,] 16 19
[3,] 18 21

> sapply(a.df[,1:2], function(x,y,z) x+y+z, y=a.df[,4],z=13) # 多个参数的函数,参数自由
     X1 X2
[1,] 24 27
[2,] 26 29
[3,] 28 31

> sapply(a.df[,1:2], function(x,y,z) x+y+z, y=a.df[,4],z=a.df[,3])  # 多个参数的函数,参数自由
     X1 X2
[1,] 18 21
[2,] 21 24
[3,] 24 27
> sapply(a.df[,1:2], function(x,y,z) {c(x+y+z, x+y+z+10)}, y=a.df[,4],z=13)  #函数输出为多个值时,注意变化!!! 第二个参数按行排列了
     X1 X2
[1,] 24 27
[2,] 26 29
[3,] 28 31
[4,] 34 37
[5,] 36 39
[6,] 38 41




R中的apply、tapply、lapply、sapply、mapply、table等函数介绍

apply函数(对一个数组按行或者按列进行计算): 使用格式为: apply(X, MARGIN, FUN, ...) 其中X为一个数组;MARGIN为一个向量(表示要将函数FUN应用到...

R语言--tapply,sapply(因子和列表的操作)

最近参加了一个小比赛,其中的tapply,sapply(lapply)函数可以快速实现我的目的和有效减少代码量 f 说明 tapply(x,f,g) x为向量,f为因子列,g为操作函数,...

R中的高效批量处理函数(lapply sapply apply tapply mapply)

R语言提供了批量处理函数,可以循环遍历某个集合内的所有或部分元素,以简化操作。 这些函数底层是通过C来实现的,所以效率也比手工遍历来的高效。 批量处理函数有很重要的apply族函数:lapply ...
  • wa2003
  • wa2003
  • 2015年05月21日 09:01
  • 5931

R语言-向量化操作(apply、tapply、lapply、sapply、mapply、table等)

apply函数(对一个数组按行或者按列进行计算):  使用格式为: apply(X, MARGIN, FUN, ...) 其中X为一个数组;MARGIN为一个向量(表示要将函数FUN应用到X的...

JSTL自定义函数,配合c标签使用

我们在使用jstl标签的时候,有的时候c标签和jstl标签提供的函数无法满足需求,就需要我们自定义一些JSTL函数,比如我想实现根据数据库保存的用户的状态标志(1或者0),展示到页面是“启用”或者“禁...

R中利用apply、tapply、lapply、sapply、mapply、table等函数进行分组统计

apply函数(对一个数组按行或者按列进行计算): 使用格式为: apply(X, MARGIN, FUN,...) 其中X为一个数组;MARGIN为一个向量(表示要将函数FUN应用到X的行...

R apply、tapply、lapply、sapply、mapply、table等函数

apply函数对一个数组按行或者按列进行计算使用格式为: apply(X, MARGIN, FUN, …) 其中X为一个数组;MARGIN为一个向量(表示要将函数FUN应用到X的行还是列),若为1...

R中利用apply、tapply、lapply、sapply、mapply、table等函数进行分组统计

原文链接:http://blog.sina.com.cn/s/blog_6caea8bf0100xkpg.html 1.
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sapply与自定义函数配合使用
举报原因:
原因补充:

(最多只允许输入30个字)