ggplot2, aes vs aes_string
Jadi saya harus mengganti aesdengan aes_stringkarena gagal rcmdcheck().
Asli:
aes(
x = A,
y = pmax(B, C, na.rm = TRUE),
),
Kebingungan saya adalah tentang Bdan C. Apakah saya diizinkan untuk memberi tanda kutip di sekitar mereka karena mereka berada di dalam pmaxfungsi? Seperti:
aes_string(
x = "A",
y = pmax("B", "C", na.rm = TRUE),
),
Apakah di bawah ini adalah solusi lain ?:
aes(
x = .data$A, y = pmax(.data$B, .data$C, na.rm = TRUE),
),
DIEDIT:
R CMD Periksa kesalahan adalah bahwa tidak ada global yang mengikat untuk variabel A, Bdan C.
Jawaban
Perbedaan antara aesdan aes_stringsangat sederhana, yang aes_stringakan menafsirkan string yang mendeskripsikan argumen. Misalnya. karya berikut
library(ggplot2)
data(mtcars)
ggplot(aes_string(x = "log(hp)", y = "1/log(mpg)", col = "factor(cyl)"), data = mtcars) +
geom_point() +
labs(col = 'cyl')
Ini juga didokumentasikan di help(aes_string)halaman
aes_ dan aes_string mengharuskan Anda untuk secara eksplisit mengutip input baik dengan "" untuk aes_string (), atau dengan kutipan atau ~ untuk aes_ ().
Tetapi seperti yang dinyatakan MrFlick dalam komentar, fungsi-fungsi ini semuanya tidak digunakan lagi, yang menurut saya berarti mereka disimpan untuk kompatibilitas tetapi penggunaan tidak disarankan.