【问题标题】:Plotting fit result in loop growthrate package in r在 r 中绘制拟合导致循环增长率包
【发布时间】:2022-09-24 01:19:17
【问题描述】:

我正在为我的 96 孔板数据使用 fit_easylinear。从增长率我使用不应该重复数据的 fit_easylinear 。在我的数据中,每口井的时间都是重复的(A!、A2、A3 等)。在其中一位 stackoverflow 用户的帮助下,我能够在循环中运行 fit_easylinear 但我正在努力制作适合结果的图。我到目前为止的代码:

 library(growthrates)
    library(tidyverse)
    
    set.seed(11)
    
    df <- data.frame(time = seq(0, 865),
                     A1 = runif(866, 0, 1),
                     A2 = runif(866, 0, 1),
                     A3 = runif(866, 0, 1),
                     A4 = runif(866, 0, 1),
                     A5 = runif(866, 0, 1),
                     A6 = runif(866, 0, 1),
                     A7 = runif(866, 0, 1),
                     A8 = runif(866, 0, 1),
                     A9 = runif(866, 0, 1),
                     A10 = runif(866, 0, 1),
                     A11 = runif(866, 0, 1),
                     A12 = runif(866, 0, 1),
                     B1 = runif(866, 0, 1),
                     B2 = runif(866, 0, 1),
                     B3 = runif(866, 0, 1),
                     B4 = runif(866, 0, 1),
                     B5 = runif(866, 0, 1),
                     B6 = runif(866, 0, 1),
                     B7 = runif(866, 0, 1),
                     B8 = runif(866, 0, 1),
                     B9 = runif(866, 0, 1),
                     B10 = runif(866, 0, 1),
                     B11 = runif(866, 0, 1),
                     B12 = runif(866, 0, 1),
                     C1 = runif(866, 0, 1),
                     C2 = runif(866, 0, 1),
                     C3 = runif(866, 0, 1),
                     C4 = runif(866, 0, 1),
                     C5 = runif(866, 0, 1),
                     C6 = runif(866, 0, 1),
                     C7 = runif(866, 0, 1),
                     C8 = runif(866, 0, 1),
                     C9 = runif(866, 0, 1),
                     C10 = runif(866, 0, 1),
                     C11 = runif(866, 0, 1),
                     C12 = runif(866, 0, 1))
    
    
    
    
    ###################### fit easy linear model 
    
    
    fit_list <- lapply(2:length(colnames(df)), function(x) fit_easylinear(df$time, df[[x]]))
    

######这绘制所有值但不显示实际拟合 for (i in seq_along(fit_list)) {jpeg(paste0(\"C:/Users/Desktop/images/\", colnames(df)[i+1], \".jpg\"));情节(插槽(fit_list [[i]],\“obs\”)); dev.off() }

###### removed slot from the code
    
 for (i in seq_along(fit_list)) {jpeg(paste0(\"C:/Users/Rahul/Desktop/images\", colnames(df)[i+1], \".jpg\"));plot(fit_list[[i]]) ;dev.off()}    
    

From th above line of code gives me error as Error in seq.default(min(obs[, \"time\"] + lag), max(obs[, \"time\"]), length = 200) : 
      \'from\' must be a finite number
  • 示例数据不适用于有用的演示。它们只是随机的,没有任何信号。请使用另一个数据集,例如this post 中提供的那个。

标签: r


【解决方案1】:

正如the previous answer 中所说,使用长格式数据几乎总是更好。但是,即使是之前调用的结果也可以很容易地绘制出来。

让我们使用另一个更现实的指数增长人口示例,而不是纯粹的随机数据:

df <- data.frame(
  time = 1:10,
  A1 = c(1.12, 1.27, 1.18, 1.49, 1.58, 1.84, 2.19, 2.32, 2.6, 2.72),
  A2 = c(1.23, 1.54, 1.65, 2.23, 2.65, 3.33, 4.23, 5.04, 6.19, 7.39),
  A3 = c(1.36, 1.87, 2.29, 3.32, 4.42, 6.06, 8.34, 11.11, 15.02, 20.09),
  B1 = c(1.5, 2.27, 3.15, 4.96, 7.32, 11.04, 16.62, 24.62, 36.74, 54.6),
  B2 = c(1.66, 2.77, 4.31, 7.39, 12.12, 20.1, 33.29, 54.69, 90.16, 148.42),
  B3 = c(1.84, 3.37, 5.88, 11.03, 20.02, 36.61, 66.86, 121.6, 221.55, 403.43)
)

fit_list <- lapply(2:length(colnames(df)), function(x) fit_easylinear(df$time, df[[x]]))

par(mfrow=c(2, 3))
dummy <- lapply(fit_list, plot) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    相关资源
    最近更新 更多