将列值与 R studio 中的平均值和关联 2 列名称进行比较

问题描述

以下是我们数据集的 2 个初始列。左边的列(有数字)是由 R 插入的。

enter image description here

以下是我们数据集中的另一列。 我们已经计算了此列中所有值的平均值。

enter image description here

我们希望将最后一列中的每个值与平均值进行比较。 (是高于、等于还是低于平均值?)。

为此,我们使用了以下代码

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)