我有一个长格式的数据帧。OTU列有大约428个唯一ID,重复度量导致26536行。
'data.frame': 26536 obs. of 18 variables:
$ OTU : chr "109431" "109431" "109431" "109431" ...
$ Sample : chr "m.ch.45" "m.ch.59" "m.ch.85" "m.ch.51" ...
$ Abundance : num 0.994 0.983 0.981 0.975 0.975 ...
$ X.SampleID : Factor w/ 62 levels "m.ch.1","m.ch.101",..: 28 37 52 33
8 15 13 7 58 14 ...
$ Family : Factor w/ 89 levels
"f__","f__[Acidaminobacteraceae]",..: 26 26 26 26 26 26 26 26 26 26
...
在OTU列中的唯一id中,我想重点介绍其中的9个(top9name(。我做了一个逻辑向量,前9名中的所有OTU都为TRUE,所有不为FALSE的都为
matches <- qd_melted$OTU %in% top9names
对于这9个OTU名称,我希望保留相应的族名称(第5列(。对于其他OTU名称(~419(,我想将"科"列中的值替换为"其他分类群"。有关于如何编码的提示吗?
向因子添加新值时,需要首先更新级别。有一种方法-
levels(qd_melted$Family) <- c(levels(qd_melted$Family), "Other taxa")
qd_melted$Family[!matches] <- "Other taxa"