Planuję wiele podobnych wykresów, więc pomyślałem, że napisałem funkcję upraszczającą zadanie. Chciałbym przekazać to data.frame
i nazwę kolumny do wykreślenia. Oto co próbowałem:Jak przekazywać nazwy kolumn do funkcji przetwarzającej data.frames
plot_individual_subjects <- function(var, data)
{
require(ggplot2)
ggplot(data, aes(x=Time, y=var, group=Subject, colour=SubjectID)) +
geom_line() + geom_point() +
geom_text(aes(label=Subject), hjust=0, vjust=0)
}
Teraz jeśli var
jest ciągiem to nie będzie działać. To nie zadziała, jeśli zmieni się aes
część polecenia ggplot
na y=data[,var]
i będzie narzekać na brak możliwości podzbioru zamknięcia.
Jaki jest właściwy sposób/najlepsza praktyka rozwiązania tego i podobnych problemów? W jaki sposób mogę łatwo i bezpiecznie przekazywać nazwy kolumn do funkcji, które chciałyby wykonywać przetwarzanie w data.frames?
Zamiast tego użyj 'aes_string'. – joran
@joran możesz równie dobrze zaksięgować to jako odpowiedź. – Justin