簡體   English   中英

匯總 function 結果為 R

[英]Aggregate function results in R

我通常使用第一種方法來聚合數據框中的多個列。 但是我注意到結果是錯誤的。 所以我把它分成多個步驟,如方法 2 所示,結果是正確的

為什么會這樣? 為什么方法 1 的結果與方法 2 不同

`

# Approach 1
  inv=aggregate(cbind(total,type1,type2,type3,type4)~pn,data=inventory,FUN=sum,na.rm=T)
  
# Approach 2
  invv=aggregate(total~pn,data=inventory,FUN=sum,na.rm=T)
  invv=merge(invv,aggregate(type1~pn,data=inventory,FUN=sum,na.rm=T),by='pn',all=T)
  invv=merge(invv,aggregate(type2~pn,data=inventory,FUN=sum,na.rm=T),by='pn',all=T)
  invv=merge(invv,aggregate(type3~pn,data=inventory,FUN=sum,na.rm=T),by='pn',all=T)
  invv=merge(invv,aggregate(type4~pn,data=inventory,FUN=sum,na.rm=T),by='pn',all=T)

`

嘗試按零件號從數據框中聚合不同類型的庫存,但結果(方法 1)是錯誤的。 但是,當分多個步驟完成時(方法 2),結果是正確的。

明白了,雖然我的所有總結中都有 na.rm=T,但數據框中 NA 的存在會導致第一種方法出現問題。 當用“0”替換 NA 時,結果沒問題

暫無
暫無

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

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