1

我知道代码中的含义tapply(dat$sale,list(dat$year,dat$province),sum)

 > dat=data.frame(  
 + year=c(rep(2007,5),rep(2008,3),rep(2009,3)),  
 + province=c("a","a","b","c","d","a","c","d","b","c","d"),  
 + sale=1:11)  
 > tapply(dat$sale,list(dat$year,dat$province),sum)  
       a  b  c  d  
 2007  3  3  4  5  
 2008  6 NA  7  8  
 2009 NA  9 10 11  

tapply(dat$sale,list(dat$year,dat$province))如果里面没有FUN是什么意思?

> tapply(dat$sale,list(dat$year,dat$province))
[1]  1  1  4  7 10  2  8 11  6  9 12

它是一个下标,结果是什么意思12? 我可以在哪个规则中获得或?如何计算它?9
129

4

1 回答 1

8

来自?tapply

FUN 要应用的函数,或 NULL。对于 +、%*% 等函数,函数名称必须反引号或引号。如果 FUN 为 NULL,tapply 返回一个向量,该向量可用于下标 tapply 正常生成的多路数组。

FUN默认为NULL,所以你得到下标。

请注意,在 R 矩阵/数组中,就像由 返回的那些一样tapply,只是具有维度的向量。默认情况下,矩阵是列优先的,因此您将获得i第一列的第 th 个元素,直到它环绕到第二列:

> mat <- matrix(seq(9),ncol=3)
> mat
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> mat[4]
[1] 4
于 2013-11-04T00:57:52.067 回答