Un fragmento de código:¿Cómo funciona R's ifelse con los datos de caracteres?
blarg = data.frame(a=c("aa", "bb", "dd"))
blarg$b = blarg$a
# blarg$b is now c("aa", "bb", "dd")
blarg$b = ifelse(blarg$a!="bb",blarg$a,"ZZZ")
# blarg$b is now c(1, "ZZZ", 3)
# I expected c("aa", "ZZZ", "dd")
# typeof(blarg$b) is "character"
¿Por qué es blarg $ b c (1, "ZZZ", 3)? ¿De dónde vienen los números?
R ha hecho 'blarg $ a' en un factor. Podría intentar 'stringsAsFactors = FALSE' –
No me importa que sea un factor. ¿Cómo puedo obtener el mismo factor para salir de ifelse? – dfrankow
Podrías lanzar 'blarg $ a' al caracter:' ifelse (blarg $ a! = "Bb", as.character (blarg $ a), "ZZZ") 'da' c ("aa", "ZZZ", "dd") ' –