カスタム関数で呼び出すと、集計の関数が奇妙な動作をするという奇妙な問題が発生しました。サブセット関数を完全に支配しているようです:
問題の概要を説明するために、2 つの部分に分けて説明します。1. カスタム機能なし
c<- data.frame(A = c("carr","bike","truck","carr","truck","bike","bike","carr","truck","carr","truck","truck","carr","truck","truck"),
B = c(10,20,30,23,45,56,78,44,10,20,30,10,20,30,67),
D = c(1,2,3,1,2,3,2,3,2,3,2,2,3,2,1))
c_subset<- subset(c,(A=="carr")|(A=="bike"))
dg<- aggregate(B ~ D + A ,c_subset,max)
dg の値は次のとおりです。
D A B
2 bike 78
3 bike 56
1 carr 23
3 carr 44
これはまさにあるべき姿です。
しかし2.カスタム機能を使用する場合:
rtk <- function(datam,inc_coll,inc_vall,lb,ld){
datam_subset <- subset(c,inc_coll %in% inc_vall)
dg1<- aggregate(lb ~ ld + inc_coll,datam_subset,max)
return(dg1)
}
c_ans <- rtk(c,c$A,c("carr","bike"),c$B,c$D)
答えは次のとおりです。
ld inc_coll lb
2 bike 78
3 bike 56
1 carr 23
3 carr 44
1 truck 67
2 truck 45
3 truck 30
集計関数で「トラック」を取得する理由を知りたいですか? 集計関数では、サブセットであり、「carr」と「bike」のデータのみを含むデータ datam_subset を使用しました。
私は非常に基本的なものを見逃しているかもしれません。あなたの助けに感謝します。ありがとう