在 R 中设置值阈值

Set a Value Threshold in R

提问人:HugoGrilo 提问时间:11/17/2023 最后编辑:CetttHugoGrilo 更新时间:11/17/2023 访问量:35

问:

我有以下数据框:

参数 价值
0NO2 46
30,3 56

具有更多参数

c("00C6H6", "00CO", "00HR", "LAEQ", "00NO2", "00O3", "00PA", 
 "PM10", "PM25", "00SO2", "TEMP", "00VTH", "00UV")

但是,某些参数的值超出了指定的限制。因此,我想为具有指定上限的参数设置一个最大值,并将超过此限制的任何值替换为指定的最大值。

我已经尝试了以下方法:

max_values <- c(
  "00C6H6" = Inf, "00CO" = Inf, "00HR" = Inf, "LAEQ" = 80, "00NO2" = 500, "00O3" = 300,
  "00PA" = Inf, "PM10" = 200, "PM25" = 100, "00SO2" = 600, "TEMP" = 50, "00VTH" = Inf, "00UV" = 15
)

Data21_Cleaned <- Data21_Cleaned %>%
  mutate(value = pmin(value, max_values[parameter]))

并尝试了另一种方法,但我无法限制不同参数的最大值并将它们替换为实际的最大值。有人可以帮我吗?

R 数据分析

评论


答:

0赞 Cettt 11/17/2023 #1

您可以使用以下方法将阈值保存在单独的 tibble 中enframe

mv_tib <- enframe(max_values, name = "Parameter", value = "max_value")

然后,您可以加入这个花絮,并在之后使用:pmin

Data21_Cleaned %>%
  left_join(mv_tib, by = "Parameter") %>%
  mutate(value = pmin(value, max_value))