问题描述
以下是我们数据集的 2 个初始列。左边的列(有数字)是由 R 插入的。
以下是我们数据集中的另一列。 我们已经计算了此列中所有值的平均值。
我们希望将最后一列中的每个值与平均值进行比较。 (是高于、等于还是低于平均值?)。
为此,我们使用了以下代码:
which(databel$coverage>0.1632407,useNames=TRUE)
which(databel$coverage<0.1632407,useNames=TRUE)
which(databel$coverage==0.1632407,useNames=TRUE)
其中 0.1632407 等于第二张图像中列的计算平均值。
然而,这将返回行号列表(在第一张图片的左侧)而不是地名(在第一张图片的右侧找到)
如何让它返回对应的地名?
解决方法
因为 which
返回索引,我们可以使用返回值对 databel$Thema
向量进行子集以获取名称。
databel=data.frame(Thema=c("Aalst","Aalter","Aarschot","Aartselaar","Affligem","Alken","Alveringem","Anderlecht"),coverage=c(.14,.17,.15,.13,.18,.14,.16),stringsAsFactors = FALSE)
databel$Thema[which(databel$coverage>mean(databel$coverage))]
"Aalter" "Alken" "Anderlecht"
databel$Thema[which(databel$coverage<mean(databel$coverage))]
"Aalst" "Aarschot" "Aartselaar" "Affligem" "Alveringem"
databel$Thema[which(databel$coverage==mean(databel$coverage))]
character(0)