提问人:HugoGrilo 提问时间:11/17/2023 最后编辑:CetttHugoGrilo 更新时间:11/17/2023 访问量:35
在 R 中设置值阈值
Set a Value Threshold in R
问:
我有以下数据框:
参数 | 价值 |
---|---|
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]))
并尝试了另一种方法,但我无法限制不同参数的最大值并将它们替换为实际的最大值。有人可以帮我吗?
答:
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))
评论