Xavier de Pedro
2010-Mar-10 12:24 UTC
[R-es] convertir una cadena de texto en nombre de variable
Hola: Tengo una duda sobre como convertir una cadena de texto en nombre de variable, que debe ser elemental, pero llevo más de una hora leyendo la ayuda del R, y googleando el tema pero no consigo resolverla. A ver si alguien en la lista sabe como... Si tengo esta serie de instruciones entre las lineas de guiones (con su salida debajo de cada instrucción, para más claridad): ------------------------------------------------ > for(i in 1:10) {dict_list[i]<-paste("dict_",i,sep="")} > dict_list [1] "dict_1" "dict_2" "dict_3" "dict_4" "dict_5" "dict_6" "dict_7" [8] "dict_8" "dict_9" "dict_10" > dict_10<-21:30 > dict_10 [1] 21 22 23 24 25 26 27 28 29 30 > dict_list[[10]] [1] "dict_10" ------------------------------------------------ Mi pregunta es, como llamo a dict_list para que me de el contenido de "dict_10", y no su nombre? Xavi
Jaume Tormo
2010-Mar-10 12:50 UTC
[R-es] convertir una cadena de texto en nombre de variable
Hola, Si quieres obtener el valor de dict_10 segun el valor de dict_list tendrás que hacer un subset o algo así para vectores. subset(dict_10,dict_list=="dict_1") este subset le dice a R "elígeme de dict_10 los elementos que estén en la misma posición que el elemento dict_1 en dict_list" ¿Es esto lo que preguntabas? El 10 de marzo de 2010 13:24, Xavier de Pedro <xavier.depedro@ub.edu>escribió:> Hola: > > Tengo una duda sobre como convertir una cadena de texto en nombre de > variable, que debe ser elemental, pero llevo más de una hora leyendo la > ayuda del R, y googleando el tema pero no consigo resolverla. A ver si > alguien en la lista sabe como... > > Si tengo esta serie de instruciones entre las lineas de guiones (con su > salida debajo de cada instrucción, para más claridad): > ------------------------------------------------ > > for(i in 1:10) {dict_list[i]<-paste("dict_",i,sep="")} > > dict_list > [1] "dict_1" "dict_2" "dict_3" "dict_4" "dict_5" "dict_6" "dict_7" > [8] "dict_8" "dict_9" "dict_10" > > > dict_10<-21:30 > > dict_10 > [1] 21 22 23 24 25 26 27 28 29 30 > > > dict_list[[10]] > [1] "dict_10" > ------------------------------------------------ > > Mi pregunta es, como llamo a dict_list para que me de el contenido de > "dict_10", y no su nombre? > > Xavi > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Jaume Tormo Blanes IMEM Ramon Margalef. Carretera San Vicente del Raspeig s/n 03690 San Vicente del Raspeig - Alicante www.ua.es acercad.wordpress.com [[alternative HTML version deleted]]
Xavier de Pedro
2010-Mar-10 13:45 UTC
[R-es] convertir una cadena de texto en nombre de variable
Fantástico, Carlos, ¡has dado en el clavo! get( dict_list[[10]] ) era lo que necesitaba (me siento cegato: había pasado por las páginas de ayuda de assign y get, pero debía tener ya un lío enorme en la cabeza - o falta de atp o similar en las neuronas - porque no he pillado que get fuera la solución cuando lo leí; y ahora al releer la página de ayuda de "get" veo que lo indica bastante claro...). Y tomo nota del consejo sobre el guión bajo "_": no era consciente del riego de tropiezos, así que lo cambio a partir de ahora. Gracias por tu respuesta también Jaume Tormo. No era lo que necesitaba en este momento, pero fantástico también por si más adelante lo necesito. Saludos Xavi P.D: ¿Es normal que las respuestas a los mensajes de esta lista vayan (por omisión) sólo al destinatario inicial y no a la lista? Al 10/03/10 13:53, En/na Carlos J. Gil Bellosta ha escrit:> ?assign > ?get > > Creo que lo que necesitas hacer, si entiendo bien, es > > get( dict_list[[10]] ) > > Si sigues usando "_" dentro del nombre de variables, el día de mañana > tropezarás con problemas. > > Carlos J. Gil Bellosta > > http://www.datanalytics.com > http://datanalytics.wordpress.com > > > El día 10 de marzo de 2010 13:24, Xavier de Pedro > <xavier.depedro en ub.edu> escribió: > >> Hola: >> >> Tengo una duda sobre como convertir una cadena de texto en nombre de >> variable, que debe ser elemental, pero llevo más de una hora leyendo la >> ayuda del R, y googleando el tema pero no consigo resolverla. A ver si >> alguien en la lista sabe como... >> >> Si tengo esta serie de instruciones entre las lineas de guiones (con su >> salida debajo de cada instrucción, para más claridad): >> ------------------------------------------------ >> >>> for(i in 1:10) {dict_list[i]<-paste("dict_",i,sep="")} >>> dict_list >>> >> [1] "dict_1" "dict_2" "dict_3" "dict_4" "dict_5" "dict_6" "dict_7" >> [8] "dict_8" "dict_9" "dict_10" >> >> >>> dict_10<-21:30 >>> dict_10 >>> >> [1] 21 22 23 24 25 26 27 28 29 30 >> >> >>> dict_list[[10]] >>> >> [1] "dict_10" >> ------------------------------------------------ >> >> Mi pregunta es, como llamo a dict_list para que me de el contenido de >> "dict_10", y no su nombre? >> >> Xavi >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >
Jorge Ivan Velez
2010-Mar-10 13:46 UTC
[R-es] convertir una cadena de texto en nombre de variable
Buenos dias Xavier, Te sugiero utilizar R> get(dict_list[[10]]) Puedes consultar ?get y ?assign para mas informacion. Saludos, Jorge Ivan Velez 2010/3/10 Xavier de Pedro <>> Hola: > > Tengo una duda sobre como convertir una cadena de texto en nombre de > variable, que debe ser elemental, pero llevo más de una hora leyendo la > ayuda del R, y googleando el tema pero no consigo resolverla. A ver si > alguien en la lista sabe como... > > Si tengo esta serie de instruciones entre las lineas de guiones (con su > salida debajo de cada instrucción, para más claridad): > ------------------------------------------------ > > for(i in 1:10) {dict_list[i]<-paste("dict_",i,sep="")} > > dict_list > [1] "dict_1" "dict_2" "dict_3" "dict_4" "dict_5" "dict_6" "dict_7" > [8] "dict_8" "dict_9" "dict_10" > > > dict_10<-21:30 > > dict_10 > [1] 21 22 23 24 25 26 27 28 29 30 > > > dict_list[[10]] > [1] "dict_10" > ------------------------------------------------ > > Mi pregunta es, como llamo a dict_list para que me de el contenido de > "dict_10", y no su nombre? > > Xavi > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Xavier de Pedro
2010-Mar-10 14:11 UTC
[R-es] convertir una cadena de texto en nombre de variable
Hola de nuevo: Gracias a todos los que me habéis mandado mensajes privados! (¿entiendo que las respuestas a preguntas mejor que vayan a la lista? así otras personas con pregunta similar en el futuro pueden encontrar la respuesta públicamente gogleando la lista? y se puede atribuir la solución fácilmente a quien la envia, a no ser que quiera quedar en el anonimato?) Incluyo aquí todas las respuestas que me habéis dicho que solucionan mi pregunta (no pongo los nombres de quienes me lo habéis dicho por si resulta que me lo habéis respondido en privado por alguna razón; no caí en esta opción en el mensaje de antes a la lista con algunas de las soluciones ): get(dict_list[[10]]) [1] 21 22 23 24 25 26 27 28 29 30 eval(as.name(dict_list[10])) [1] 21 22 23 24 25 26 27 28 29 30 eval(parse(text=dict_list[[10]])) [1] 21 22 23 24 25 26 27 28 29 30 ¡Y gracias también por la celeridad en las respuestas, que me ha sido muy útil para desencallar el trabajo parcial que quería rematar esta mañana ! :-) Saludos Xavi Al 10/03/10 14:46, En/na Jorge Ivan Velez ha escrit:> Buenos dias Xavier, > > Te sugiero utilizar > > R> get(dict_list[[10]]) > > Puedes consultar ?get y ?assign para mas informacion. > > Saludos, > Jorge Ivan Velez > > > 2010/3/10 Xavier de Pedro <> > > Hola: > > Tengo una duda sobre como convertir una cadena de texto en nombre > de variable, que debe ser elemental, pero llevo más de una hora > leyendo la ayuda del R, y googleando el tema pero no consigo > resolverla. A ver si alguien en la lista sabe como... > > Si tengo esta serie de instruciones entre las lineas de guiones > (con su salida debajo de cada instrucción, para más claridad): > ------------------------------------------------ > > for(i in 1:10) {dict_list[i]<-paste("dict_",i,sep="")} > > dict_list > [1] "dict_1" "dict_2" "dict_3" "dict_4" "dict_5" "dict_6" > "dict_7" > [8] "dict_8" "dict_9" "dict_10" > > > dict_10<-21:30 > > dict_10 > [1] 21 22 23 24 25 26 27 28 29 30 > > > dict_list[[10]] > [1] "dict_10" > ------------------------------------------------ > > Mi pregunta es, como llamo a dict_list para que me de el contenido > de "dict_10", y no su nombre? > > Xavi > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org <mailto:R-help-es@r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]