如何将组均值与个体观察结果进行比较并创建一个新的 TRUE/FALSE 列?
How do I compare group means to individual observations and make a new TRUE/FALSE column?
我是 R 的新手,这是我第一次 post SO - 所以请多多包涵。
我正在尝试识别数据集中的异常值。我有两个 data.frames:
(1 - 原始数据集,192 行):观测值及其值 (AvgConc)
(2 - 使用 dplyr 创建,24 行):原始数据集的组平均值,以及分位数、最小值和最大值
我想在原始数据集中创建一个新列,根据 (AvgConc) 是大于最大值还是小于我在第二个 [=29= 中计算的最小值,给出 TRUE/FALSE ].我该怎么做?
尝试失败:
Outliers <- Original.Data %>%
group_by(Status, Stim, Treatment) %>%
mutate(Outlier = Original.Data$AvgConc > Quantiles.Data$Maximum | Original.Data$AvgConc < Quantiles.Data$Minimum) %>%
as.data.frame()
错误:列 Outlier
的长度必须为 8(组大小)或 1,而不是 192
在这里,我们需要通过与 'Original.Data' by
和 'Status'、'Stim'、'Treatment' 进行连接来删除 Quantiles.Data$
library(dplyr)
Original.Data %>%
inner_join(Quantiles.Data %>%
select(Status, Stim, Treatment, Maximum, Minimum)) %>%
group_by(Status, Stim, Treatment) %>%
mutate(Outlier = (AvgConc > Maximum) |(AvgConc < Minimum)) %>%
as.data.frame()
我是 R 的新手,这是我第一次 post SO - 所以请多多包涵。
我正在尝试识别数据集中的异常值。我有两个 data.frames:
(1 - 原始数据集,192 行):观测值及其值 (AvgConc)
(2 - 使用 dplyr 创建,24 行):原始数据集的组平均值,以及分位数、最小值和最大值
我想在原始数据集中创建一个新列,根据 (AvgConc) 是大于最大值还是小于我在第二个 [=29= 中计算的最小值,给出 TRUE/FALSE ].我该怎么做?
尝试失败:
Outliers <- Original.Data %>%
group_by(Status, Stim, Treatment) %>%
mutate(Outlier = Original.Data$AvgConc > Quantiles.Data$Maximum | Original.Data$AvgConc < Quantiles.Data$Minimum) %>%
as.data.frame()
错误:列 Outlier
的长度必须为 8(组大小)或 1,而不是 192
在这里,我们需要通过与 'Original.Data' by
和 'Status'、'Stim'、'Treatment' 进行连接来删除 Quantiles.Data$
library(dplyr)
Original.Data %>%
inner_join(Quantiles.Data %>%
select(Status, Stim, Treatment, Maximum, Minimum)) %>%
group_by(Status, Stim, Treatment) %>%
mutate(Outlier = (AvgConc > Maximum) |(AvgConc < Minimum)) %>%
as.data.frame()