-1

以下是我们数据集的 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 等于第二张图像中列的计算平均值。

但是,这将返回行号列表(位于第一张图像的左侧)而不是地名(位于第一张图像的右侧)

我们如何让它返回相应的地名?

4

1 回答 1

0

因为which返回索引,我们可以使用返回值对databel$Thema向量进行子集化以获取名称。

databel=data.frame(Thema=c("Aalst", "Aalter", "Aarschot", "Aartselaar", "Affligem", "Alken", "Alveringem", "Anderlecht"),
           coverage=c(.14,.17,.15,.13,.15,.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)
于 2021-03-12T00:27:45.147 回答