![](/img/trans.png)
[英]function works perfectly fine outside ddply but throws an error inside 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
將所有列( ID
, per
和Area
)的值相加。 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.