【问题标题】:Setting a maximum limit for values in a data frame in R在 R 中为数据框中的值设置最大限制
【发布时间】: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 &lt;- seq(seq(0, 1e4, 10)); mns &lt;- sapply(maxv, function(u) mean(pmin(x$number, u))); plot(maxv, mns, type="l")。为什么不改用median

标签: r max limit mean


【解决方案1】:

你应该使用 pmin 值:

pmin(x$number, 1e3)
# to test multiple limits :
mns <- sapply(c(1e6, 1e4, 1e2), function(u) mean(pmin(x$number, u)))

【讨论】:

  • 完美!谢谢下垂!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-12
  • 2019-03-19
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多