gpt4 book ai didi

r - ddply 函数 sum 中的错误?

转载 作者:行者123 更新时间:2023-12-04 11:15:39 24 4
gpt4 key购买 nike

第一次在这里发帖!我在使用 ddply 函数时遇到问题。我有一张表格,我想使用“LC”列进行总结,并在“区域”列中添加值:

  ID LC  per     Area
1 1 7 0.29 62428.3
2 1 7 0.79 170063.3
3 1 4 0.40 86108.0
4 1 7 0.43 92566.1
5 1 6 1.00 215270.0
6 1 7 0.61 131314.7

基于此数据框,我完全期望:
LC   Area
4 86108.0
6 215270.0
7 456372.4

应用 ddply 函数我得到这些结果:
> ddply(x, 'LC', sum)
LC V1
1 4 86113.4
2 6 215278.0
3 7 456406.5

格式是完美的,但值存在一些差异。例如,类 7 的值应为 456372.4,而 ddply 报告的值为 456406.5。相差34.1。所有的值都计算错误。

有人可以解释我为什么会遇到这个问题吗?我在这里错过了什么吗?我的代码错了吗?

谢谢!

最佳答案

你的方法有两个问题:

  • 您需要告诉 ddply 求和的内容( Area )。如果您不指定列, ddply 会对所有列( IDperArea )的值求和。
  • 您可以使用 summarise 参数聚合数据。

  • 此代码有效:
    x <- read.table(text="  ID LC  per     Area
    1 1 7 0.29 62428.3
    2 1 7 0.79 170063.3
    3 1 4 0.40 86108.0
    4 1 7 0.43 92566.1
    5 1 6 1.00 215270.0
    6 1 7 0.61 131314.7", header = TRUE)


    library(plyr)

    ddply(x, .(LC), summarise, sum(Area))

    结果:
      LC      ..1
    1 4 86108.0
    2 6 215270.0
    3 7 456372.4

    关于r - ddply 函数 sum 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13834310/

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