gpt4 book ai didi

r - tapply和ave之间的功能有什么区别?

转载 作者:行者123 更新时间:2023-12-04 09:14:57 26 4
gpt4 key购买 nike

我无法将自己的注意力集中在ave函数上。我阅读了帮助并搜索了网络,但仍然无法理解它的作用。我了解它在观察的子集上应用了某些功能,但与tapply不同

有人可以举个小例子给我启发吗?

谢谢,请原谅我一个不寻常的请求。

最佳答案

tapply针对每个因子水平返回单个结果。 ave还在每个因子水平上产生单个结果,但是它将此值复制到原始数据中的每个位置。
ave便于在带有摘要数据的数据框中生成新列。

一个简短的例子:

tapply(iris$Sepal.Length, iris$Species, FUN=mean)
setosa versicolor virginica
5.006 5.936 6.588

一个值,每个因子水平的平均值。
ave上的 iris产生150个结果,该结果与原始数据帧对齐:
 ave(iris$Sepal.Length, iris$Species, FUN=mean)
[1] 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006
[17] 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006
[33] 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006 5.006
[49] 5.006 5.006 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936
[65] 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936
[81] 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936 5.936
[97] 5.936 5.936 5.936 5.936 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588
[113] 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588
[129] 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588 6.588
[145] 6.588 6.588 6.588 6.588 6.588 6.588

如评论中所述,此处将对单个值进行回收以填充原始数据中的每个位置。

如果函数返回多个值,则如有必要,将回收这些值以填充位置。例如:
d <- data.frame(a=rep(1:2, each=5), b=1:10)
ave(d$b, d$a, FUN=rev)
[1] 5 4 3 2 1 10 9 8 7 6

感谢Josh和thelatemail。

关于r - tapply和ave之间的功能有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22289258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com