Supposons que vous essayez de créer une trame de données dans une fonction. J'aimerais pouvoir définir les noms des colonnes à l'avance comme l'un des paramètres de la fonction. Prenez le code suivant:Spécification des noms de colonne d'une trame de données dans une fonction à l'avance
foo <- function(a) {
answer <- data.frame(a=1:5)
return(answer)
}
Dans l'exemple ci-dessus, je voudrais être en mesure de préciser la valeur du nom de la colonne dans la fonction foo()
, par exemple foo('my.name')
de sorte que la réponse a le nom de colonne my.name
au lieu de a
. J'imagine que vous pourriez le coder dans la fonction en utilisant colnames()
, mais je me suis intéressé à une approche alternative.
Je ne peux pas penser à rien de plus simple que d'utiliser 'colnames (réponse) <- à la fin a' de foo. Si vous avez les noms en tant que noms dans une liste, vous pouvez utiliser 'as.data.frame (list (a = 1, b = 2, c = 3))'. Pouvez-vous clarifier pourquoi colnames vous semble maladroit dans votre cas particulier? – Harlan
Supposons bien que la trame de données a plusieurs colonnes. Dans ce cas, vous auriez besoin d'écrire quelque chose de plus impliqué comme 'colnames (réponse) [colnames (réponse) == 'a'] <- 'foo'' Je m'intéressais principalement à une alternative à l'écriture explicite qui serait peut-être impliquer quelque chose lié à 'substitute()'. – andrewj
Il pourrait être plus utile si vous donniez un exemple concret de ce que vous essayez d'accomplir, et peut-être décrivez un peu votre idée d'utiliser substitute() – geoffjentry