Это папки в моем каталогеИспользование lapply к источнику несколько сценариев R в поддиректории
128 128-1-32 16384 16384-1-36 4096-1 512 512-1-65 65536-1
128-1 128tbw1 16384-1 4096 4096-1-36 512-1 65536
Каждый из них имеет a7.R код, который загружает файлы из каждой папки и создает images.I хочу, чтобы мой сценарий вводить каждый из папок, то
source('a7.R')
затем закройте эту папку и повторите процедуру для всех folders.I делает это сейчас вручную, и это действительно boring.Is это возможно с R?
Я попробовал решение, как этот
#!/usr/bin/Rscript
lapply(list.files(full.names=TRUE, recursive = TRUE, pattern = "^a7\\.R$"), source)
[email protected]:~/jbirp/mt07$ Rscript s.R
list()
-ного раствора coffeinejunky
«s не работает
#!/usr/bin/Rscript
foo <- function(directory) { setwd(directory); source(a7.R) }
do.call("foo", list(directory= 128 128-1-32 16384 16384-1-36 4096-1 512 512-1-65 65536-1 128-1 128tbw1 16384-1 4096 4096-1-36 512-1 65536))
source('n.R')
Error in source("n.R") : n.R:2:33: unexpected numeric constant
1: foo <- function(directory) { setwd(directory); source(a7.R) }
2: do.call("foo", c(directory= 128 128
Если я изменить список, как этот
do.call("foo", list(directory= "./128" "./128-1" "./128-1-32" "./128tbw1" "./16384" "./16384-1" "./16384-1-36" "./4096" "./4096-1" "./4096-1-36" "./512" "./512-1" "./512-1-65" "./65536" "./65536-1"))
Я получил
Error in source("n.R") : n.R:2:40: unexpected string constant
1: foo <- function(directory) { setwd(directory); source(a7.R) }
2: do.call("foo", list(directory= "./128" "./128-1"
^
Это то, что я получил, когда я перечисляю тракту
> list.dirs(path = ".", full.names = TRUE)
[1] "." "./128" "./128-1" "./128-1-32" "./128tbw1"
[6] "./16384" "./16384-1" "./16384-1-36" "./4096" "./4096-1"
[11] "./4096-1-36" "./512" "./512-1" "./512-1-65" "./65536"
[16] "./65536-1"
мне нужно изменить каталог несколько раз и выполняют ту же операцию в каждом из them.Is lapply хорошо для этого или нет?
Что-то вроде 'для (MYDIR в dirVec) источника (паста (MYDIR, "a7.R", сентябрь = "/")) 'должен делать трюк. – lmo
Попробуйте 'lapply (list.files (recursive = TRUE, pattern ="^a7 \\. R $ "), source)' –
Каждая папка имеет файл a7.R, этот скрипт делает что-то конкретное только для этой папки или это тот же скрипт, но с разными данными, т. е. форматы входных файлов одинаковы во всех этих папках? – zx8754