簡體   English   中英

如何將組均值與單個觀察值進行比較並創建新的 TRUE/FALSE 列?

[英]How do I compare group means to individual observations and make a new TRUE/FALSE column?

我是 R 的新手,這是我在 SO 上的第一篇文章 - 所以請多多包涵。

我正在嘗試識別數據集中的異常值。 我有兩個data.frames:

(1 - 原始數據集,192 行):觀察值及其值 (AvgConc)

(2 - 使用 dplyr 創建,24 行):來自原始數據集的分組平均值,以及分位數、最小值和最大值

我想在原始數據集中創建一個新列,根據 (AvgConc) 是大於最大值還是小於我在第二個 data.frame 中計算的最小值給出 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

在這里,我們需要by “Status”、“Stim”、“Treatment”與“Original.Data”進行連接來刪除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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM