簡體   English   中英

ddply函數總和中的錯誤?

[英]error in ddply function sum?

第一次在這里發布! 我在使用ddply函數時遇到問題。 我想使用“ LC”列匯總該表,並在“ Area”列中添加值:

  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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM