使用R中的函数处理后保留样本信息

时间:2017-05-12 18:58:55

标签: r lapply gam

我不会假装这个代码甚至是最优的,但这就是我遇到的问题。我有一个用sapply()读入多列的文件列表,这样如果我调用file.list[[1]],我会得到该data.frame的摘要,而summary(file.list)是一个文件列表。

我使用mgcv包将曲线拟合到数据中,如下所示:

gam_data <- function(curves)
{
  out <- gam(curves[, 15] ~ s(curves[, 23]))
  pd <- plot(out)
  return(pd)
}
out <- lapply(file.list, gam_data)

split_curves <- function(splitting)
{
  pd_2 <- c(splitting[[1]]$fit)
  pd_3 <- c(splitting[[1]]$x)
  pd_4 <- c(splitting[[1]]$se)
  curveg <- cbind(pd_2, pd_3, pd_4)
  colnames(curveg) <- c("fitted", "sphro", "se")
  return(curveg)
}

out2 <- lapply(out, split_curves)

第一个块正在执行gam,第二个块正在提取曲线的拟合。然而,在所有这些之后,file.list中的原始信息(例如复制,基因型等)丢失,并且data.frames不再是相同的长度。这可能是一个微不足道的问题,但是如何通过处理保留这些信息呢?我将此应用于数百个数据框,因此我不能手动重新创建列。

0 个答案:

没有答案