首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中自动定位文件

在R中自动定位文件
EN

Stack Overflow用户
提问于 2018-11-16 19:23:08
回答 1查看 128关注 0票数 0

我正在尝试弄清楚R代码,并将其自动化,这样我就不必每次都指定文件位置,只需指定父文件夹的位置即可。在父文件夹中,将有n个子文件夹存放所需的文件。

目前,我要做的是手动指定所有子文件夹的位置。

代码是这样的:

代码语言:javascript
运行
复制
First a function:

```{r include = T}
代码语言:javascript
运行
复制
    loadSC <- function(path){
代码语言:javascript
运行
复制
    sc <- read10XResults(path)
代码语言:javascript
运行
复制
    Genes <- as.character(rowData(sc)[startsWith(rowData(sc)$symbol, "mt-"),]$id)
代码语言:javascript
运行
复制
    isSpike(sc, "MT") <- rownames(sc) %in% Genes
代码语言:javascript
运行
复制
    sc <- calculateQCMetrics(sc, 
代码语言:javascript
运行
复制
                              feature_controls = list(
代码语言:javascript
运行
复制
                                MT =  isSpike(sc, "MT")
代码语言:javascript
运行
复制
    ))
代码语言:javascript
运行
复制
}
代码语言:javascript
运行
复制

指向文件(这是想要的,我希望它能自动标识子文件夹的数量。在这里,我们有5个子文件夹K1,K2,K3,K4,K5,并在其中查找文件)

代码语言:javascript
运行
复制
```{r include = T}
代码语言:javascript
运行
复制
    sc_1 = loadSC("Sample/K1/outs/matrices/mm10/")
代码语言:javascript
运行
复制
    sc_2 = loadSC("Sample/K2/outs/matrices/mm10/")
代码语言:javascript
运行
复制
    sc_3 = loadSC("Sample/K3/outs/matrices/mm10/")
代码语言:javascript
运行
复制
    sc_4 = loadSC("Sample/K4/outs/matrices/mm10/")
代码语言:javascript
运行
复制
    sc_5 = loadSC("Sample/K5/outs/matrices/mm10/")
代码语言:javascript
运行
复制
```
代码语言:javascript
运行
复制
Also, i have similar chunk below this one that will also need to be looped in.

```javascript
代码语言:javascript
运行
复制
    metadata(sc_1)["name"] <- "iM-1"
    metadata(sc_2)["name"] <- "iM-2"
    metadata(sc_3)["name"] <- "iM-3"
    metadata(sc_4)["name"] <- "iM-4"
    metadata(sc_5)["name"] <- "iM-5"
代码语言:javascript
运行
复制

我是在Rmarkdown中这样做的。

一个小小的指导或者一个有效的例子将会很有帮助。

提前谢谢你

EN

回答 1

Stack Overflow用户

发布于 2018-11-16 21:09:13

假设你的数据是这样存储的:

/K3

  • ...

  • Sample (父文件夹)
  • --> /K1 /K1 /K2
  • -->

访问数据的一种简单方法是:

代码语言:javascript
运行
复制
# This function gets all the folder paths inside "Sample" 
paths <- list.dirs(path = "Sample", recursive = FALSE)
# To access the data, you should get used to lapply()
data <- lapply(paths, loadSC)
# To keep an overview where the data is from
names(data) <- paths

因此,您将获得一个包含所需数据的综合命名列表。您可能需要调整loadSC(),但将来只需更改父文件夹即可分析另一个数据集。干杯

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

https://stackoverflow.com/questions/53336885

复制
相关文章

相似问题

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