在数据框中(在 R 中),我有两列 - 第一列是物种名称列表 ( species),第二列是我对该物种 ( number)的出现记录数。列中有很大的变化number,大多数值 <100,但有一些值非常高 (>100,000),并且有很多行 (~4000)。这是一个简化的示例:
x<-data.frame(species=c("a","b","c","d","e","f","g","h","i","j"),number=c(53,17,67,989,135,67,13,786,100400,28))
Run Code Online (Sandbox Code Playgroud)
基本上我想要做的是减少最大记录数(number列中的值),直到该列中所有值的平均值稳定。
为此,我需要为number列中的值设置最大限制,以便将任何值 > 此限制减少到此最大限制,并记录平均值。我想多次重复此操作,每次将最大限制减少 100。
我在网上找不到任何类似的问题,也不确定从哪里开始!任何帮助,即使只是在正确方向上的一点,将不胜感激!干杯
您应该使用 pmin 值:
pmin(x$number, 1e3)
# to test multiple limits :
mns <- sapply(c(1e6, 1e4, 1e2), function(u) mean(pmin(x$number, u)))
Run Code Online (Sandbox Code Playgroud)