【问题标题】:Plot Integral trace in R在 R 中绘制积分轨迹
【发布时间】:2018-05-22 21:57:44
【问题描述】:

我想用 Graphpad Prism 和 R 自动执行分析,但显然它比我想象的要难。

我有想要整合和绘制的电压~时间数据。在 Graphpad Prism 中,这是通过分析 -> 积分 -> 创建积分来执行的。

在这里,我在 Prism 中绘制数据,并绘制从 Plot Integral 命令获得的轨迹。

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

我使用的数据是这样的:

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

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

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

感谢您的帮助!

【问题讨论】:

    标签: r


    【解决方案1】:

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

    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]
    

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

    cumsum(df$Voltage[1:(nrow(df)-1)]) * diff(df$Time)
    

    【讨论】:

    • 谢谢,cumsum() 函数确实有效。太棒了!
    猜你喜欢
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    相关资源
    最近更新 更多