我正在尝试弄清楚R代码,并将其自动化,这样我就不必每次都指定文件位置,只需指定父文件夹的位置即可。在父文件夹中,将有n个子文件夹存放所需的文件。
目前,我要做的是手动指定所有子文件夹的位置。
代码是这样的:
First a function:
```{r include = T}
loadSC <- function(path){
sc <- read10XResults(path)
Genes <- as.character(rowData(sc)[startsWith(rowData(sc)$symbol, "mt-"),]$id)
isSpike(sc, "MT") <- rownames(sc) %in% Genes
sc <- calculateQCMetrics(sc,
feature_controls = list(
MT = isSpike(sc, "MT")
))
}
指向文件(这是想要的,我希望它能自动标识子文件夹的数量。在这里,我们有5个子文件夹K1,K2,K3,K4,K5,并在其中查找文件)
```{r include = T}
sc_1 = loadSC("Sample/K1/outs/matrices/mm10/")
sc_2 = loadSC("Sample/K2/outs/matrices/mm10/")
sc_3 = loadSC("Sample/K3/outs/matrices/mm10/")
sc_4 = loadSC("Sample/K4/outs/matrices/mm10/")
sc_5 = loadSC("Sample/K5/outs/matrices/mm10/")
```
Also, i have similar chunk below this one that will also need to be looped in.
```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"
我是在Rmarkdown中这样做的。
一个小小的指导或者一个有效的例子将会很有帮助。
提前谢谢你
发布于 2018-11-16 21:09:13
假设你的数据是这样存储的:
/K3
访问数据的一种简单方法是:
# 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(),但将来只需更改父文件夹即可分析另一个数据集。干杯
https://stackoverflow.com/questions/53336885
复制相似问题