首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制R中的积分迹

绘制R中的积分迹
EN

Stack Overflow用户
提问于 2017-12-09 00:03:50
回答 1查看 636关注 0票数 1

我想用R自动分析我一直在做的Graphpad Prism,但显然它比我想象的要难。

我有电压~时间数据,我想对其进行积分和绘图。在Graphpad Prism中,这是由分析和集成->创建积分来执行的。

在这里,我绘制了棱镜中的数据,并绘制了从plot Integral命令获得的轨迹。

我怎么才能用R做到这一点呢?

我使用的数据类似于以下内容:

代码语言:javascript
复制
Time <- seq(1,100,1)
Voltage <- sample(1:1000,100, replace = F)

我尝试过integrate(),但它需要一个函数来集成,而我没有这个函数,并且只给出了一个数字。我尝试了approxfun(),我可以为我的数据创建一个函数,但同样,当我应用'integrate()‘时,我只得到了一个值。

您对Graphpad Prism函数的作用以及如何将其转换为R有什么想法吗?

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-09 00:10:44

对于离散值,您可以使用cumsum:

代码语言:javascript
复制
set.seed(1)

Time <- seq(1,100,1)
Voltage <- sample(1:1000,100, replace = F)

df = data.frame(Time, Voltage)

library(ggplot2)
p1 <- ggplot(data = df)+
  geom_line(aes(x = Time, y = Voltage))

p2 <- ggplot(data = df)+
  geom_line(aes(x = Time, y = cumsum(Voltage)))


library(gridExtra)    
grid.arrange(p1, p2)][1]][1]

对于间隔不均匀的时间值,您需要计算:

代码语言:javascript
复制
cumsum(df$Voltage[1:(nrow(df)-1)]) * diff(df$Time)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47718011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档