2017-07-23 1 views
0
fun <- function(dataframe, var){ 
    print(data$var) 
} 

dataset <- data.frame(a = 1:6, b = 12:17, c = 3:8) 

fun(dataset, a) 

Essentiellement, je voudrais faire quelque chose comme ça où je peux passer l'un des noms de colonnes en fonction et être capable de l'utiliser pour appeler cette colonne plus tard. Je sais que la fonction group_by le gère d'une manière ou d'une autre, mais quand je suis passé en mode de débogage et que j'ai essayé de le comprendre, je ne pouvais pas faire la tête ou la queue de ce qui était en train de faire ce que je voulais.Utilisation dataframe Nom de la colonne comme R Fonction Argument

+3

passe dans une chaîne entre guillemets ' "une"' et en fonction entre parenthèses d'utilisation: 'data [[var]]' – Parfait

+1

amusant <- function (dataframe, var) {print (dataframe [c (var)])} –

+0

Il y a un autre problème ici: Le paramètre de la fonction s'appelle 'dataframe' mais dans le corps' data' est référencé. – Uwe

Répondre

-1

Pour ce faire dplyr-like, vous devez utiliser tidyevaluation. Tout d'abord, vous devez enquo()var, puis reportez-vous à var avec !!:

library(dplyr) 

fun <- function(dataframe, var){ 
    var <- enquo(var) 
    select(dataframe, !!var) 
} 

dataset <- data.frame(a = 1:6, b = 12:17, c = 3:8) 

fun(dataset, a) 

Vous pouvez trouver un bon tuto tidyevalhere.

Best,

Colin