R语言中的循环函数

摘要: R语言中有几个常用的函数,可以按组对数据进行处理,apply, lapply, sapply, tapply, mapply,等。这几个函数功能有些类似,下面介绍下这几个函数的用法。 Apply 这是对一个Matrix或者Array进行某个维度的运算。

R语言中有几个常用的函数,可以按组对数据进行处理,apply, lapply, sapply, tapply, mapply,等。这几个函数功能有些类似,下面介绍下这几个函数的用法。

Apply
这是对一个Matrix或者Array进行某个维度的运算。其格式是:

Apply(数据,维度Index,运算函数,函数的参数)

对于Matrix来说,其维度值为2,第二个参数维度Index中,1表示按行运算,2表示按列运算。下面举一个例子:

m<-matrix(1:6,2,3)

构建一个简单的2行3列的矩阵,内容为:

[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6

如果我们要计算每一行的sum值,那么我们可以写为:
apply(m,1,sum)

[1] 9 12

如果要计算每一列的mean值,那么改为:
apply(m,2,mean)

[1] 1.5 3.5 5.5

假如某个值为NA,那么要忽略NA值,进行每一行的SUM怎么办呢?
m[2,2]<-NA

[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 NA 6

apply(m,1,sum)

[1] 9 NA

本身sum函数有一个参数na.rm,我们可以将这个参数带人到apply函数中,作为第4个参数:
apply(m,1,sum,na.rm=TRUE)

[1] 9 8

需要注意的是如果是Data Frame,那么系统会将其转为Matrix,如果所有Column不是数字类型或者类型不一致,导致转换失败,那么apply是运算不出任何一列的结果的。

Lapply
前面说到apply是对于matrix和array的,针对list,我们可以使用lapply函数。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值