【发布时间】:2014-03-17 10:16:03
【问题描述】:
在数据框中(在 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))
基本上我想要做的是减少最大记录数(number 列中的值),直到该列中所有值的平均值稳定。
为此,我需要为number 列中的值设置一个最大限制,以便任何值> 此限制减少到此最大限制,并记录平均值。我想重复多次,每次将最大限制减少 100。
我无法在网上找到任何类似的问题,也不确定从哪里开始!任何帮助,即使只是正确方向的一点,将不胜感激!干杯
【问题讨论】:
-
“直到该列中所有值的平均值稳定”是什么意思?请参见下图:
maxv <- seq(seq(0, 1e4, 10)); mns <- sapply(maxv, function(u) mean(pmin(x$number, u))); plot(maxv, mns, type="l")。为什么不改用median?