# Create temp directory
tmp <- tempdir()
# Write program 1
p1 <- file(file.path(tmp, "prog1.R"))
writeLines("print('Hello from program 1')", p1)
close(p1)
# Write program 2
p2 <- file(file.path(tmp, "prog2.R"))
writeLines("stop('Error from program 2')", p2)
close(p2)
# Write program 3
p3 <- file(file.path(tmp, "prog3.R"))
writeLines("print('Hello from program 3')", p3)
close(p3)
# Example #1: Run all programs
res1 <- source.all(tmp)
# [1] "Hello from program 1"
# [1] "Hello from program 3"
# View results
res1
# Filename StartTime EndTime Status Message
# 1 prog1.R 2024-03-05 10:12:04 2024-03-05 10:12:04 0 Success
# 2 prog2.R 2024-03-05 10:12:04 2024-03-05 10:12:04 1 Error from program 2
# 3 prog3.R 2024-03-05 10:12:04 2024-03-05 10:12:04 0 Success
#' # Example #2: Exclusion criteria
res2 <- source.all(tmp, exclude = "prog2")
# [1] "Hello from program 1"
# [1] "Hello from program 3"
# View results
res2
# Filename StartTime EndTime Status Message
# 1 prog1.R 2024-03-05 10:13:24 2024-03-05 10:13:24 0 Success
# 2 prog3.R 2024-03-05 10:13:24 2024-03-05 10:13:24 0 Success
# Example #3: Inclusion criteria
res3 <- source.all(tmp, pattern = "*2")
# View results
res3
# Filename StartTime EndTime Status Message
# 1 prog2.R 2024-03-05 10:16:41 2024-03-05 10:16:41 1 Error from program 2
# View attributes
attributes(res3)
# $names
# [1] "Filename" "StartTime" "EndTime" "Status" "Message"
#
# $class
# [1] "data.frame"
#
# $row.names
# [1] 1
#
# $path
# [1] "C:\Users\dbosa\AppData\Local\Temp\RtmpGAXYJl"
#
# $pattern
# [1] "*2.R"
#
# $errors
# [1] 1
Run the code above in your browser using DataLab