J'ai recherché d'autres solutions, elles fonctionnent mais pas dans ce cas. Je crée une fonction qui parcourt la trame de données et étale la variable Factor en une nouvelle variable fictive. Certains algorithmes d'apprentissage automatique ne peuvent pas gérer les facteurs. Pour ce faire, j'utilise à l'intérieur de la fonction de nettoyage la fonction spread()
. Lorsque je tente de transmettre un nom d'une colonne que je dois répandre jeter une erreur:Erreur mystérieuse lors du passage du nom de colonne à une fonction dans R
Error: Invalid column specification
Voici le code: si je remplace key = as.character(substitute(name))
avec key = "state"
library(tidyr)
library(dplyr)
library(C50) # this is one source for the churn data
data(churn)
f <- function(df, name) {
df$dummy <- c(1:nrow(df)) # create dummy variable with unique values
df <- spread(df, key <- as.character(substitute(name)), "dummy", fill = 0)
}
churnTrain = f(churnTrain, name = "state")
str(churnTrain)
Bien sûr, il fonctionne très bien mais toute la fonction perd sa réutilisabilité. Je demande à Google pour une solution de chasse de quelques jours, mais rien ne fonctionne. J'utilise ici l'ensemble de données de R, donc il est facile de reproduire les résultats. Comment passer le nom de la colonne à la fonction interne sans erreur?
Merci pour l'aide!