サンプルポイントのグループを含むデータフレームがあります。
samplePoint<-c("1","1","1","1","2","2","2","2","3","3","3","3")
category<-c("a", "a", "a", NA, "b", "b", NA, "b", NA, "a", "a", "a")
values<-c(0.51, 0.21, 0.31, 0.22, 0.61, 0.71, 0.52, 0.32, 0.23, 0.1, 0.24, 0.33)
dat<-data.frame(samplePoint, category, values)
プロセスの後半で何かを行うために、dat$categoryのNAを再コーディングする必要があります。各サンプルポイントには、カテゴリが1つだけあります。1つはすべて「a」、2は「b」、3つは「a」である必要があります。
一致またはルックアップタイプの関数を使用して再コーディングすることを目的として、ifelse関数を使用して集計を試みました。
codeList<-aggregate(
dat$category, by=list(dat$samplePoint),
FUN=function(x){ifelse(length(which(x=="a")) > length(which(x=="b")), "a", "b")}
)
質問1は、どのようにマッチングに取り組むのですか?質問2は、全体を完全に複雑にしすぎたのでしょうか。
ご協力いただきありがとうございます。