首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带空函数的R's tapply

带空函数的R's tapply
EN

Stack Overflow用户
提问于 2016-05-23 12:39:03
回答 1查看 343关注 0票数 5

tapply参数是null时,我很难理解FUN函数做什么。

documentation说:

如果乐趣为空,则tapply返回一个向量,该向量可用于订阅通常生成的多路数组tapply。

例如,下面的文档示例是做什么的?

代码语言:javascript
复制
ind <- list(c(1, 2, 2), c("A", "A", "B"))
tapply(1:3, ind) #-> the split vector

我不明白结果:

代码语言:javascript
复制
[1] 1 2 4

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-05-23 13:09:23

如果您使用指定的函数( NULL)运行tapply,比如sum,如在“帮助”中,您将看到结果是一个在一个单元格中包含NA的二维数组:

代码语言:javascript
复制
res <- tapply(1:3, ind, sum)
res
   A  B
 1 1 NA
 2 2  3

这意味着没有一个因素组合,即(1,B)。当FUN为NULL时,它返回一个向量索引,该索引对应于所有当前的因子组合。要检查这一点:

代码语言:javascript
复制
> which(!is.na(res))
[1] 1 2 4

值得一提的是,指定的函数可以返回NA本身,如下面的玩具示例所示:

代码语言:javascript
复制
> f <- function(x){
      if(x[[1]] == 1) return(NA)
      return(sum(x))
  }
> tapply(1:3, ind, f)
   A  B
1 NA NA
2  2  3

因此,一般说来,NA并不意味着不存在一个因素组合。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37391261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档