![](/img/trans.png)
[英]How do I combine two observations in a group into a new observation with dplyr
[英]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.