Je voudrais passer une variable à l'opérateur binaire $.
Disons que j'ai cette
> levels(diamonds$cut)
[1] "Fair" "Good" "Very Good" "Premium" "Ideal"
Je veux faire une fonction qui prend en paramètre le sélecteur pour $
my_helper <- function (my_param) {
levels(diamonds$my_param)
}
Mais cela ne fonctionne pas
> my_helper(cut)
NULL
> my_helper("cut")
NULL
Pourquoi dites-vous qu'il n'a pas accès à l'objet? Je suppose que 'diamonds' est dans la portée globale, le problème est que' $ 'n'accepte pas les chaînes. – nico
C'est techniquement correct mais erroné - n'assumez pas la visibilité globale mais rendez vos fonctions d'accesseur explicites. Et toute l'approche est fausse, d'où la nécessité d'une lecture plus approfondie. Si vous le souhaitez, les niveaux 'mylevels <- function (x, y) (x [, y])' devraient fonctionner --- mais il y a plus à apprendre sur les listes, data.frames, ... et quoi utiliser quand. Pp –
Je ne suis pas d'accord dans une certaine mesure - dans certains cas, pendant l'analyse interactive des données (pas la programmation), il peut être utile de définir de petites fonctions auxiliaires reposant sur un ensemble de données fixe prénom. – hadley