首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过取平均值组合因子水平

通过取平均值组合因子水平
EN

Stack Overflow用户
提问于 2022-03-20 21:17:07
回答 1查看 33关注 0票数 0

新手来了。

我有一个列为“年份”(2014-2019年)、“站点”(7个站点)、“样带”(上游、下游)的数据集,以及大约50个包含个体计数的昆虫物种栏。我想平均值的上下游样本每年和网站。最终目标是建立一个列为“年份”、“站点”的数据集,以及包含上下游计数平均值的50个昆虫物种列。我曾尝试过几种方法,但都没有成功。下面的代码是我最后一次尝试。

代码语言:javascript
运行
复制
INS_YxS<-aggregate(INV.MEANS[5:54], INV.MEANS[1:3], mean)

此数据集中的第1-4列为X、年份、站点、样带.5~54种昆虫。

最终的数据集似乎有正确的列,但它似乎只是删除了横断面列,而没有平均的上下游物种计数。有人知道如何完成我想做的事吗?

下面是我的数据的可视化表示(表1),以及我希望它看起来像什么(表2):https://i.stack.imgur.com/WkX4e.png

请注意,在2中没有横断面列,而昆虫列中的新值是每年站点上下游样带行的平均值,导致行数减少。

抱歉,我想找个最好的方法来解释我想做什么.

我知道答案就在外面,取决于我问正确的问题.

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-03-20 21:54:27

考虑一下带有点表示法的公式版本:

代码语言:javascript
运行
复制
INSECTS_MEANS <- aggregate(
    . ~ YEAR + SITE + TRANSECT,
    data=INSECTS_COUNTS, 
    FUN=mean, na.rm=TRUE, 
    na.action=na.omit
)

否则,需要将列表传递到by参数中:

代码语言:javascript
运行
复制
INSECTS_MEANS <- aggregate(
    x = INSECTS_COUNTS[5:ncol(INSECTS_COUNTS)],
    by = list(
        YEAR = INSECTS_COUNTS$YEAR,
        SITE = INSECTS_COUNTS$SITE,
        TRANSECT = INSECTS_COUNTS$TRANSECT
    ), 
    FUN=mean, na.rm=TRUE, 
    na.action=na.omit
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71550721

复制
相关文章

相似问题

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