variable valores valor una studio reemplazar por palomita numeral los datos data como codigos codigo cero cambiar abecedario r dataframe na

una - Reemplazar valores de caracteres con NA en un marco de datos



reemplazar na r (5)

Tengo un marco de datos que contiene (en lugares aleatorios) un valor de carácter (digamos "foo" ) que quiero reemplazar con un NA .

¿Cuál es la mejor manera de hacerlo en todo el marco de datos?


Esta:

df[ df == "foo" ] <- NA


Esto podría hacerse con dplyr de mutate_all y replace :

library(dplyr) df <- data_frame(a = c(''foo'', 2, 3), b = c(1, ''foo'', 3), c = c(1,2,''foobar''), d = c(1, 2, 3)) > df # A tibble: 3 x 4 a b c d <chr> <chr> <chr> <dbl> 1 foo 1 1 1 2 2 foo 2 2 3 3 3 foobar 3 df <- mutate_all(df, funs(replace(., .==''foo'', NA))) > df # A tibble: 3 x 4 a b c d <chr> <chr> <chr> <dbl> 1 <NA> 1 1 1 2 2 <NA> 2 2 3 3 3 foobar 3


Otra opción es is.na<- :

is.na(df) <- df == "foo"

Tenga en cuenta que su uso puede parecer un poco contra-intuitivo, pero en realidad asigna valores NA a df en el índice en el lado derecho.


Una forma alternativa de resolver es a continuación:

for (i in 1:ncol(DF)){ DF[which(DF[,i]==""),columnIndex]<-"ALL" FinalData[which(is.na(FinalData[,columnIndex])),columnIndex]<-"ALL" }


Una manera de cortar esto de raíz es convertir ese personaje a NA cuando leas los datos en primer lugar.

df <- read.csv("file.csv", na.strings = c("foo", "bar"))