ID EN
Miscellaneous

with

R Base 3.6.2 🇮🇩 Bahasa Indonesia

Evaluasi ekspresi R dalam lingkungan yang dibangun dari data, kemungkinan memodifikasi (salinan) data asli.

Syntax

R
with(data, expr, …)
within(data, expr, …)
# S3 method for list
within(data, expr, keepAttrs = TRUE, …)

Arguments

Parameter Deskripsi
data data to use for constructing an environment. For the default with method this may be an environment, a list, a data frame, or an integer as in sys.call. For within, it can be a list or a data frame.
expr expression to evaluate; particularly for within() often a “compound” expression, i.e., of the form { a <- somefun() b <- otherfun() ..... rm(unused1, temp) }
keepAttrs for the list method of within(), a logical specifying if the resulting list should keep the attributes from data and have its names in the same order. Often this is unneeded as the result is a named list anyway, and then keepAttrs = FALSE is more efficient.
&#8230; arguments to be passed to (future) methods.

Return Value

Untuk dengan, nilai expr yang dievaluasi. Untuk di dalam, objek yang dimodifikasi.

Details

with adalah fungsi generik yang mengevaluasi expr di lingkungan lokal yang dibangun dari data. Lingkungan memiliki lingkungan pemanggil sebagai induknya. Hal ini berguna untuk menyederhanakan panggilan ke fungsi pemodelan. (Catatan: jika data sudah menjadi lingkungan maka ini digunakan dengan induknya yang sudah ada.) Perhatikan bahwa penugasan dalam expr berlangsung di lingkungan yang dibangun dan bukan di ruang kerja pengguna. dalam serupa, kecuali bahwa ia memeriksa lingkungan setelah evaluasi expr dan membuat modifikasi yang sesuai pada salinan data (ini mungkin gagal dalam kasus bingkai data jika objek dibuat yang tidak dapat disimpan dalam bingkai data), dan mengembalikannya. dalam dapat digunakan sebagai alternatif untuk bertransformasi.

Contoh

Example
R
# NOT RUN {
with(mtcars, mpg[cyl == 8  &  disp > 350])
    # is the same as, but nicer than
mtcars$mpg[mtcars$cyl == 8  &  mtcars$disp > 350]

require(stats); require(graphics)

# examples from glm:
with(data.frame(u = c(5,10,15,20,30,40,60,80,100),
                lot1 = c(118,58,42,35,27,25,21,19,18),
                lot2 = c(69,35,26,21,18,16,13,12,12)),
    list(summary(glm(lot1 ~ log(u), family = Gamma)),
         summary(glm(lot2 ~ log(u), family = Gamma))))

aq <- within(airquality, {     # Notice that multiple vars can be changed
    lOzone <- log(Ozone)
    Month <- factor(month.abb[Month])
    cTemp <- round((Temp - 32) * 5/9, 1) # From Fahrenheit to Celsius
    S.cT <- Solar.R / cTemp  # using the newly created variable
    rm(Day, Temp)
})
head(aq)




# example from boxplot:
with(ToothGrowth, {
    boxplot(len ~ dose, boxwex = 0.25, at = 1:3 - 0.2,
            subset = (supp == "VC"), col = "yellow",
            main = "Guinea Pigs' Tooth Growth",
            xlab = "Vitamin C dose mg",
            ylab = "tooth length", ylim = c(0, 35))
    boxplot(len ~ dose, add = TRUE, boxwex = 0.25, at = 1:3 + 0.2,
            subset = supp == "OJ", col = "orange")
    legend(2, 9, c("Ascorbic acid", "Orange juice"),
           fill = c("yellow", "orange"))
})

# alternate form that avoids subset argument:
with(subset(ToothGrowth, supp == "VC"),
     boxplot(len ~ dose, boxwex = 0.25, at = 1:3 - 0.2,
             col = "yellow", main = "Guinea Pigs' Tooth Growth",
             xlab = "Vitamin C dose mg",
             ylab = "tooth length", ylim = c(0, 35)))
with(subset(ToothGrowth,  supp == "OJ"),
     boxplot(len ~ dose, add = TRUE, boxwex = 0.25, at = 1:3 + 0.2,
             col = "orange"))
legend(2, 9, c("Ascorbic acid", "Orange juice"),
       fill = c("yellow", "orange"))
# }

See Also

evalq attach assign transform.