ID EN
I/O & Files

source

R Base 3.6.2 🇮🇩 Bahasa Indonesia

source menyebabkan R menerima inputnya dari file atau URL bernama atau koneksi atau ekspresi secara langsung. Input dibaca dan diurai dari file tersebut hingga akhir file tercapai, kemudian ekspresi yang diurai dievaluasi secara berurutan di lingkungan yang dipilih. withAutoprint(exprs) adalah pembungkus untuk source(exprs = exprs, ..) dengan default berbeda. Tujuan utamanya adalah untuk mengevaluasi dan mencetak ekspresi secara otomatis seolah-olah dalam konteks tingkat atas, misalnya, seperti di konsol R.

Syntax

R
source(file, local = FALSE, echo = verbose, print.eval = echo,
       exprs, spaced = use_file,
       verbose = getOption("verbose"),
       prompt.echo = getOption("prompt"),
       max.deparse.length = 150, width.cutoff = 60L,
       deparseCtrl = "showAttributes",
       chdir = FALSE,
       encoding = getOption("encoding"),
       continue.echo = getOption("continue"),
       skip.echo = 0, keep.source = getOption("keep.source"))<p></p><p>withAutoprint(exprs, evaluated = FALSE, local = parent.frame(),
              print. = TRUE, echo = TRUE, max.deparse.length = Inf,
              width.cutoff = max(20, getOption("width")),
              deparseCtrl = c("keepInteger", "showAttributes", "keepNA"),
              &#8230;)</p>

Arguments

Parameter Deskripsi
file a connection or a character string giving the pathname of the file or URL to read from. "" indicates the connection stdin().
local TRUE, FALSE or an environment, determining where the parsed expressions are evaluated. FALSE (the default) corresponds to the user's workspace (the global environment) and TRUE to the environment from which source is called.
echo logical; if TRUE, each expression is printed after parsing, before evaluation.
print.eval, print. logical; if TRUE, the result of eval(i) is printed for each expression i; defaults to the value of echo.
exprs for source() and withAutoprint(*, evaluated=TRUE): instead of specifying file, an expression, call, or list of call's, but not an unevaluated “expression”. for withAutoprint() (with default evaluated=FALSE): one or more unevaluated “expressions”.
evaluated logical indicating that exprs is passed to source(exprs= *) and hence must be evaluated, i.e., a formal expression, call or list of calls.
spaced logical indicating if newline (hence empty line) should be printed before each expression (when echo = TRUE).
verbose if TRUE, more diagnostics (than just echo = TRUE) are printed during parsing and evaluation of input, including extra info for each expression.
prompt.echo character; gives the prompt to be used if echo = TRUE.
max.deparse.length integer; is used only if echo is TRUE and gives the maximal number of characters output for the deparse of a single expression.
width.cutoff integer, passed to deparse() which is used (only) when there are no source references.
deparseCtrl character vector, passed as control to deparse(), see also .deparseOpts. In R version <= 3.3.x, this was hardcoded to "showAttributes", which is the default currently; deparseCtrl = "all" may be preferable, when strict back compatibility is not of importance.
chdir logical; if TRUE and file is a pathname, the R working directory is temporarily changed to the directory containing file for evaluating.
encoding character vector. The encoding(s) to be assumed when file is a character string: see file. A possible value is "unknown" when the encoding is guessed: see the ‘Encodings’ section.
continue.echo character; gives the prompt to use on continuation lines if echo = TRUE.
skip.echo integer; how many comment lines at the start of the file to skip if echo = TRUE.
keep.source logical: should the source formatting be retained when echoing expressions, if possible?
&#8230; (for withAutoprint():) further (non-file related) arguments to be passed to source(.).

Details

Perhatikan bahwa menjalankan kode melalui sumber berbeda dalam beberapa hal dengan memasukkannya pada baris perintah R. Karena ekspresi tidak dieksekusi di tingkat atas, pencetakan otomatis tidak dilakukan. Jadi, Anda perlu memasukkan panggilan cetak eksplisit untuk hal-hal yang ingin Anda cetak (dan ingat bahwa ini termasuk membuat plot berdasarkan kisi, FAQ Q7.22). Karena file lengkap diurai sebelum dijalankan, kesalahan sintaksis mengakibatkan tidak ada kode yang dijalankan. Jika terjadi kesalahan saat menjalankan skrip yang benar secara sintaksis, apa pun yang ditugaskan ke ruang kerja dengan kode yang telah dijalankan akan disimpan (seperti dari baris perintah), namun informasi diagnostik seperti traceback() akan berisi panggilan tambahan ke withVisible. Semua versi R menerima input dari koneksi dengan akhir baris yang ditandai dengan LF (seperti yang digunakan di Unix)

Contoh

Example
R
# NOT RUN {
someCond <- 7 > 6
## want an if-clause to behave "as top level" wrt auto-printing :
## (all should look "as if on top level", e.g. non-assignments should print:)
if(someCond) withAutoprint({
   x <- 1:12
   x-1
   (y <- (x-5)^2)
   z <- y
   z - 10
})

## If you want to source() a bunch of files, something like
## the following may be useful:
 sourceDir <- function(path, trace = TRUE, ...) {
    for (nm in list.files(path, pattern = "[.][RrSsQq]$")) {
       if(trace) cat(nm,":")
       source(file.path(path, nm), ...)
       if(trace) cat("\n")
    }
 }

suppressWarnings( rm(x,y) ) # remove 'x' or 'y' from global env
withAutoprint({ x <- 1:2; cat("x=",x,"\n"); y <- x^2 })
## x and y now exist:
stopifnot(identical(x, 1:2), identical(y, x^2))

withAutoprint({ formals(sourceDir); body(sourceDir) },
              max.dep = 20, verbose = TRUE)
# }
# NOT RUN {
<!-- %% --> tests in  ../../../../tests/eval-etc.R -->
# }

See Also

demo which uses source; eval parse and scan; options("keep.source"). sys.source which is a streamlined version to source a file into an environment. ‘The R Language Definition’ for a discussion of source directives.