我有一个包含样本点组的数据框:
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 应该都是“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 是我把整个事情完全复杂化了吗?
谢谢你的帮助。