2016-10-15 7 views
1
in Datenmanipulation aufzuwerten

ich den folgenden Code verwenden wollte, aber es funktioniert nicht, und ich habe keine Ahnung, warum ?:Verwendung mit dplyr

data <- data.frame(variable1 = as.factor(rep(c("A","B","C"), each=5)), 
        variable2 = rnorm(15,10,2)) 

require(plyr) 
require(dplyr) 

data <- data %>% 
revalue(variable1, c("A"="House", "B"="Flat", "C"="Loft")) 

Antwort

0

Das Problem ist, dass variable1 kein Faktor oder Zeichenvektor ist. Es ist der "Name" einer Spalte in einem Datenrahmen. Die revalue Funktion erwartet Faktoren oder Zeichenvektoren. Sie können mithilfe der mutate() Funktion wie das Problem beseitigen:

# your code  
data <- data.frame(variable1 = as.factor(rep(c("A","B","C"), each=5)), 
        variable2 = rnorm(15,10,2)) 

require(plyr) 
require(dplyr) 

# corrected code 
data <- 
    data %>% 
     mutate(variable1 = revalue(variable1, c("A"="House", "B"="Flat", "C"="Loft"))) 
+0

ich hier erwähnen möchte, dass es wichtig ist, bevor dplyr laden plyr. – Pharcyde

+0

Vielen Dank für Ihre Antwort! Ich habe an anderer Stelle gelesen, dass es eine Möglichkeit gibt, das gleiche ohne das plyr-Paket zu tun, indem recode() verwendet wird, jedoch scheint der Recode eine Funktion des Auto-Pakets zu sein. – Pharcyde