J'ai utilisé le code suivant pour essayer de remplacer la valeur des variables qui sont inférieures aux 2,5% inférieurs et supérieures aux 97,5% supérieurs avec des valeurs spécifiques.Vous pouvez exécuter ce code. Il fournit un fichier de données ouvert.Remplacement d'une erreur de code aberrante de 2,5%, 97,5% dans R
credit<-read.csv("http://freakonometrics.free.fr/german_credit.csv", header=TRUE)
fun <- function(x){
quantiles <- quantile(x, c(.025, .975))
x[ x < quantiles[1] ] <- quantiles[1]
x[ x > quantiles[2] ] <- quantiles[2]
x
}
fun(credit)
Mais le message d'erreur est apparu.
Error in `[.data.frame`(x, order(x, na.last = na.last, decreasing = decreasing)) :
undefined columns selected
Quel est le problème? Je suis heureux de toute aide!
+ Ajout commentaire
Je trouve que la fonction ci-dessus ne fonctionne pas dans le cadre de données, mais ne fonctionne que dans le vecteur.
Je peux changer la valeur aberrante de chaque variable dans le fichier de données avec le code suivant:
Cependant, mon fichier de données a tellement de variables qu'il est gênant d'entrer le code un par un.
Alors, comment puis-je modifier les valeurs aberrantes des variables qu'une valeur spécifique ne pmax & pmin?
Le problème est que vous n'avez sélectionné aucune colonne, comme l'indique l'erreur. 'x' est l'ensemble de la trame de données. –
@Rich Scriven Merci pour la réponse. Mais je ne comprends pas ce que tu veux dire. Pouvez-vous l'expliquer dans le code? –
'quantile (x, c (.025, .975))' est la ligne de problème. Essayez-le avec 'quantile (crédit, c (.025, .975))'. Dans quelle colonne essayez-vous d'exécuter 'quantile'? Il ne fonctionne que sur des vecteurs numériques, pas sur des trames de données entières. –