Hola: Si codificas "col1" como un factor, lo puedes cambiar todo de una vez renombrando los niveles correspondientes: > df$col1<-as.factor(df$col1) > df$col1 [1] uno dos 3 4 cinco 6 siete 8 9 diez Levels: 3 4 6 8 9 cinco diez dos siete uno > levels(df$col1)[1:5] <- c("tres","cuatro","seis","ocho","nueve") > df col1 col2 1 uno 1 2 dos 2 3 tres 3 4 cuatro 4 5 cinco 5 6 seis 6 7 siete 7 8 ocho 8 9 nueve 9 10 diez 10 > Saludos, Marcelino El 13/09/2020 a las 14:37, Samura . escribió:> Hola a tod en s > > ?C?mo puedo cambiar varios datos por otros en un data frame? > > Por ejemplo > > col1<-c("uno","dos",3,4,"cinco",6,"siete",8,9,"diez") > col2<-c(1,2,3,4,5,6,7,8,9,10) > > df<-data.frame(col1,col2) > df$col1<-as.character(df$col1) > df > > col1 col2 > uno 1 > dos 2 > 3 3 > 4 4 > cinco 5 > 6 6 > siete 7 > 8 8 > 9 9 > diez 10 > > Ahora quiero cambiar por ejemplo los n?meros por letras (o cualquier otro dato en cualquier otro ejemplo) > > df$col1[df$col1==3]<-"tres" > df$col1[df$col1==4]<-"cuatro" > df$col1[df$col1==6]<-"seis" > df$col1[df$col1==8]<-"ocho" > df$col1[df$col1==9]<-"nueve" > > ?No hay otra forma de ponerlo para no ir uno a uno? > > he probado con > > df$col1[df$col1==c(3,4,6)]<-c("tres","cuatro","seis") > > pero nada, pq creo que tendr?a q ponerlos todos, solo quiero poner los que quiero cambiar. > > Gracias! > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es-- Marcelino de la Cruz Rot Depto. de Biología y Geología Física y Química Inorgánica Universidad Rey Juan Carlos Móstoles España
Genial! Gracias! ________________________________ De: Marcelino de la Cruz Rot <marcelino.delacruz en urjc.es> Enviado: domingo, 13 de septiembre de 2020 12:50 Para: Samura . <tontito82 en hotmail.com>; r-help-es en r-project.org <r-help-es en r-project.org> Asunto: Re: [R-es] Cambiar datos de un DF Hola: Si codificas "col1" como un factor, lo puedes cambiar todo de una vez renombrando los niveles correspondientes: > df$col1<-as.factor(df$col1) > df$col1 [1] uno dos 3 4 cinco 6 siete 8 9 diez Levels: 3 4 6 8 9 cinco diez dos siete uno > levels(df$col1)[1:5] <- c("tres","cuatro","seis","ocho","nueve") > df col1 col2 1 uno 1 2 dos 2 3 tres 3 4 cuatro 4 5 cinco 5 6 seis 6 7 siete 7 8 ocho 8 9 nueve 9 10 diez 10 > Saludos, Marcelino El 13/09/2020 a las 14:37, Samura . escribió:> Hola a tod en s > > ?C?mo puedo cambiar varios datos por otros en un data frame? > > Por ejemplo > > col1<-c("uno","dos",3,4,"cinco",6,"siete",8,9,"diez") > col2<-c(1,2,3,4,5,6,7,8,9,10) > > df<-data.frame(col1,col2) > df$col1<-as.character(df$col1) > df > > col1 col2 > uno 1 > dos 2 > 3 3 > 4 4 > cinco 5 > 6 6 > siete 7 > 8 8 > 9 9 > diez 10 > > Ahora quiero cambiar por ejemplo los n?meros por letras (o cualquier otro dato en cualquier otro ejemplo) > > df$col1[df$col1==3]<-"tres" > df$col1[df$col1==4]<-"cuatro" > df$col1[df$col1==6]<-"seis" > df$col1[df$col1==8]<-"ocho" > df$col1[df$col1==9]<-"nueve" > > ?No hay otra forma de ponerlo para no ir uno a uno? > > he probado con > > df$col1[df$col1==c(3,4,6)]<-c("tres","cuatro","seis") > > pero nada, pq creo que tendr?a q ponerlos todos, solo quiero poner los que quiero cambiar. > > Gracias! > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es-- Marcelino de la Cruz Rot Depto. de Biología y Geología Física y Química Inorgánica Universidad Rey Juan Carlos Móstoles España [[alternative HTML version deleted]]
Estimado Samura Hay varias formas pero yo prefiero lo primero que usted propone, ir uno por uno. Lógicamente si son muchos se requiere un extenso tiempo escribiendo, uno se puede equivocar, pero de forma ordenada esto permite conocer los datos, sobretodo cuando estos provienen de otras personas o de alguna base de datos con pocos cuidados. Yo prefiero gastar tiempo corrigiendo uno a uno y no tener problemas en el análisis. Javier Rubén Marcuzzi El dom., 13 sept. 2020 a las 14:38, Samura . (<tontito82 en hotmail.com>) escribió:> Genial! > Gracias! > > > ________________________________ > De: Marcelino de la Cruz Rot <marcelino.delacruz en urjc.es> > Enviado: domingo, 13 de septiembre de 2020 12:50 > Para: Samura . <tontito82 en hotmail.com>; r-help-es en r-project.org < > r-help-es en r-project.org> > Asunto: Re: [R-es] Cambiar datos de un DF > > Hola: > Si codificas "col1" como un factor, lo puedes cambiar todo de una vez > renombrando los niveles correspondientes: > > > df$col1<-as.factor(df$col1) > > > df$col1 > [1] uno dos 3 4 cinco 6 siete 8 9 diez > Levels: 3 4 6 8 9 cinco diez dos siete uno > > > levels(df$col1)[1:5] <- c("tres","cuatro","seis","ocho","nueve") > > df > col1 col2 > 1 uno 1 > 2 dos 2 > 3 tres 3 > 4 cuatro 4 > 5 cinco 5 > 6 seis 6 > 7 siete 7 > 8 ocho 8 > 9 nueve 9 > 10 diez 10 > > > > > Saludos, > > Marcelino > > > El 13/09/2020 a las 14:37, Samura . escribió: > > Hola a tod en s > > > > ?C?mo puedo cambiar varios datos por otros en un data frame? > > > > Por ejemplo > > > > col1<-c("uno","dos",3,4,"cinco",6,"siete",8,9,"diez") > > col2<-c(1,2,3,4,5,6,7,8,9,10) > > > > df<-data.frame(col1,col2) > > df$col1<-as.character(df$col1) > > df > > > > col1 col2 > > uno 1 > > dos 2 > > 3 3 > > 4 4 > > cinco 5 > > 6 6 > > siete 7 > > 8 8 > > 9 9 > > diez 10 > > > > Ahora quiero cambiar por ejemplo los n?meros por letras (o cualquier > otro dato en cualquier otro ejemplo) > > > > df$col1[df$col1==3]<-"tres" > > df$col1[df$col1==4]<-"cuatro" > > df$col1[df$col1==6]<-"seis" > > df$col1[df$col1==8]<-"ocho" > > df$col1[df$col1==9]<-"nueve" > > > > ?No hay otra forma de ponerlo para no ir uno a uno? > > > > he probado con > > > > df$col1[df$col1==c(3,4,6)]<-c("tres","cuatro","seis") > > > > pero nada, pq creo que tendr?a q ponerlos todos, solo quiero poner los > que quiero cambiar. > > > > Gracias! > > > > > > > > [[alternative HTML version deleted]] > > > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > -- > Marcelino de la Cruz Rot > Depto. de Biología y Geología > Física y Química Inorgánica > Universidad Rey Juan Carlos > Móstoles España > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]