【问题标题】:how to calculate integral with R如何用R计算积分
【发布时间】:2011-09-09 08:03:39
【问题描述】:

在这里,我想请你帮忙实现两个向量的积分计算。我查看了关于 R 积分计算的页面。但是,我对数学的培训很少,所以我仍然不能自己做。

我的目标是实现这句话的想法“如果你按位置绘制速率估计值,那么遗传图就是这个图的积分。”这意味着我有变量(利率、职位),每个职位都有自己的利率。我想计算每个职位的费率积分。在这里,位置是单调递增的。

对于那些具有良好数学计算背景的人来说,这项任务不应该那么复杂。那么,请您给我任何指示/说明吗?

提前致谢。

# here I make dummy data

position <- c(2,34,58)
rate <- c(14, 20, 5)  

【问题讨论】:

  • Erm,如果“积分”是指黎曼积分 (en.wikipedia.org/wiki/Integral),那么这是针对连续函数(或者,从技术上讲,是具有可数个不连续点的函数)。所以,恐怕你的问题没有多大意义。
  • 这不是家庭作业。这实际上是工作。我需要它来做我的研究。感谢您的回复。
  • 对杰克来说,我有几千万对这样的位置和比率。我还没有完全理解你的意思。有人告诉我,我可以使用梯形法则计算积分。我对这个问题的背景知识太少,以至于我对所有事情都一无所知。
  • 对不起。我在这里问了一个幼稚的问题,所以我得到了否定的问题。但是,实际上我无法理解其中的原因。
  • 原因可能是因为我们不完全知道您通过计算两个向量的积分是什么意思。什么是“遗传图谱”?

标签: r integral


【解决方案1】:

在数学中,积分是曲线下的面积。在您的示例中,您希望曲线下的面积由位置和速率定义。

position <- c(2,34,58)
rate <- c(14, 20, 5)  

plot(position, rate, type="l", ylim=c(0, 25))

您可以使用梯形法则手动计算曲线下的面积:

32*17 + 24*12.5 = 844

或者,以编程方式进行:

AUC <- function(x, y){
  sum(diff(x)*rollmean(y,2))
}

AUC(position, rate)
[1] 844

【讨论】:

  • 非常感谢,安德烈。我知道这不是我所期望的。但是,我想我有一些误解或不好的表达方式。
  • @jianfeng.mao 那么你期待的是什么?
猜你喜欢
  • 1970-01-01
  • 2014-03-01
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 1970-01-01
  • 2012-02-13
  • 2018-04-11
相关资源
最近更新 更多