首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用lapply聚合目录

使用lapply聚合目录
EN

Stack Overflow用户
提问于 2015-07-08 23:25:39
回答 1查看 50关注 0票数 1

MWE

我有4个群体中大约100个个体的全基因组数据。每个群体都有一个单独的目录,其中包含每个人的单独文件。我正在尝试使用以下代码清理所有内容并将其聚合到一个数据帧中:

代码语言:javascript
复制
popAgg <- function (dir){
  fileNames <- list.files(path = dir , full.names = TRUE)
  data <- lapply (
    X = seq_along(fileNames) , FUN = function (x) {
      cbind (x , read.csv (fileNames[x] , sep = "\t", header = FALSE))
    }
  )
popData <- rbind.fill(data)
popData <- cbind (dir , popData)
popData <- popData[popData[14]!=0, c(1 , 2 , 4 , 6 , 14)]
names(popData) <- c("pop" , "ind" , "read.depth" , "position", "no.diff")
return(popData)
}
dirNames <- list.dirs()
metaPopData <- lapply(X = dirNames , FUN = popAgg)

这应该会给我一个数据帧的列表,然后可以用rbind.fill折叠。

最后,给出了附加的mwe应该给出的输出:

代码语言:javascript
复制
      pop ind read.depth position no.diff
27  MWE1/   2        382      437     418
271 MWE2/   2        382      437     418

我使用popAgg函数通过手动应用于mwe中的两个目录来派生此输出,因此看起来lapply是我遇到的唯一问题,并且似乎是错误的根源。此外,我在popAgg函数中使用了相同的技术,除了将该函数编写为lambda之外,因此我不确定出了什么问题。

EN

回答 1

Stack Overflow用户

发布于 2015-07-09 00:11:43

我通过在list.dirs(...)中设置recursive = FALSE修复了这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31297082

复制
相关文章

相似问题

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