ID EN
String Functions

sprintf

R Base 3.6.2 🇮🇩 Bahasa Indonesia

Pembungkus untuk fungsi C sprintf, yang mengembalikan vektor karakter yang berisi kombinasi teks dan nilai variabel yang diformat.

Syntax

R
sprintf(fmt, …)
gettextf(fmt, …, domain = NULL)

Arguments

Parameter Deskripsi
fmt a character vector of format strings, each of up to 8192 bytes.
… values to be passed into fmt. Only logical, integer, real and character vectors are supported, but some coercion will be done: see the ‘Details’ section. Up to 100.
domain see gettext.

Return Value

Vektor karakter dengan panjang input terpanjang. Jika elemen fmt atau argumen karakter apa pun dideklarasikan sebagai UTF-8, elemen hasilnya akan dalam UTF-8 dan pengkodeannya dinyatakan sebagai UTF-8. Kalau tidak, itu akan berada dalam pengkodean lokal saat ini.

Details

sprintf adalah pembungkus untuk fungsi perpustakaan C sprintf sistem. Upaya dilakukan untuk memeriksa apakah mode nilai yang diteruskan cocok dengan format yang disediakan, dan nilai khusus R (NA, Inf, -Inf, dan NaN) ditangani dengan benar. gettextf adalah fungsi praktis yang menyediakan pemformatan string gaya C dengan kemungkinan terjemahan format string. Argumen (termasuk fmt) didaur ulang jika memungkinkan beberapa kali hingga yang terpanjang, dan kemudian pemformatan dilakukan secara paralel. Argumen dengan panjang nol diperbolehkan dan akan memberikan hasil dengan panjang nol. Semua argumen dievaluasi meskipun tidak digunakan, dan karenanya beberapa tipe (misalnya, "simbol" atau "bahasa", lihat typeof) tidak diperbolehkan. Berikut ini disarikan dari Kernighan dan Ritchie (lihat Referensi): namun implementasi sebenarnya

Contoh

Example
R
# NOT RUN {
## be careful with the format: most things in R are floats
## only integer-valued reals get coerced to integer.

sprintf("%s is %f feet tall\n", "Sven", 7.1)      # OK
try(sprintf("%s is %i feet tall\n", "Sven", 7.1)) # not OK
    sprintf("%s is %i feet tall\n", "Sven", 7  )  # OK

## use a literal % :

sprintf("%.0f%% said yes (out of a sample of size %.0f)", 66.666, 3)

## various formats of pi :

sprintf("%f", pi)
sprintf("%.3f", pi)
sprintf("%1.0f", pi)
sprintf("%5.1f", pi)
sprintf("%05.1f", pi)
sprintf("%+f", pi)
sprintf("% f", pi)
sprintf("%-10f", pi) # left justified
sprintf("%e", pi)
sprintf("%E", pi)
sprintf("%g", pi)
sprintf("%g",   1e6 * pi) # -> exponential
sprintf("%.9g", 1e6 * pi) # -> "fixed"
sprintf("%G", 1e-6 * pi)

## no truncation:
sprintf("%1.f", 101)

## re-use one argument three times, show difference between %x and %X
xx <- sprintf("%1$d %1$x %1$X", 0:15)
xx <- matrix(xx, dimnames = list(rep("", 16), "%d%x%X"))
noquote(format(xx, justify = "right"))

## More sophisticated:

sprintf("min 10-char string '%10s'",
        c("a", "ABC", "and an even longer one"))

# }
# NOT RUN {
## Platform-dependent bad example from qdapTools 1.0.0:
## may pad with spaces or zeroes.
sprintf("%09s", month.name)
# }
# NOT RUN {
n <- 1:18
sprintf(paste0("e with %2d digits = %.", n, "g"), n, exp(1))

## Using arguments out of order
sprintf("second %2$1.0f, first %1$5.2f, third %3$1.0f", pi, 2, 3)

## Using asterisk for width or precision
sprintf("precision %.*f, width '%*.3f'", 3, pi, 8, pi)

## Asterisk and argument re-use, 'e' example reiterated:
sprintf("e with %1$2d digits = %2$.*1$g", n, exp(1))

## re-cycle arguments
sprintf("%s %d", "test", 1:3)

## binary output showing rounding/representation errors
x <- seq(0, 1.0, 0.1); y <- c(0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1)
cbind(x, sprintf("%a", x), sprintf("%a", y))
# }

See Also

formatC for a way of formatting vectors of numbers in a similar fashion. paste for another way of creating a vector combining text and values. gettext for the mechanisms for the automated translation of text.