Jaume Tormo
2010-Sep-22 12:18 UTC
[R-es] crear acceder a un dataframe utilizando una variable
Hola a todos. Tengo una pregunta, creo que trivial, pero no se ni por donde empezar a buscar la respuesta. Todos sabemos que para acceder a una variable de un dataframe usamos el dolar. cars$speed nos da el contenido de la varible speed dentro del dataframe cars. Pero si, en lugar de speed directamente, quiero poner el valor de una variable...> v<-"speed" > v[1] "speed"> cars$vNULL ...claro, por que cars$v no existe. ¿Hay alguna forma de decirle al R que esa v no es una "v", sino el valor de la variable v? Espero haberme explicado bien. Muchas gracias 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]]
José Luis Cañadas
2010-Sep-22 12:29 UTC
[R-es] crear acceder a un dataframe utilizando una variable
Hola , prueba con cars[,v] El 22/09/10 14:18, Jaume Tormo escribió:> Hola a todos. > > Tengo una pregunta, creo que trivial, pero no se ni por donde empezar a > buscar la respuesta. > Todos sabemos que para acceder a una variable de un dataframe usamos el > dolar. > cars$speed > nos da el contenido de la varible speed dentro del dataframe cars. > Pero si, en lugar de speed directamente, quiero poner el valor de una > variable... > > >> v<-"speed" >> v >> > [1] "speed" > >> cars$v >> > NULL > > ...claro, por que cars$v no existe. ¿Hay alguna forma de decirle al R que > esa v no es una "v", sino el valor de la variable v? Espero haberme > explicado bien. > > Muchas gracias > > > > > 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]] > > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Usuario R
2010-Sep-22 12:31 UTC
[R-es] crear acceder a un dataframe utilizando una variable
Hola Jaume Igual te sirve esto: cars[ , v ] Saludos Patricia El 22 de septiembre de 2010 14:18, Jaume Tormo <jautorbla@gmail.com>escribió:> Hola a todos. > > Tengo una pregunta, creo que trivial, pero no se ni por donde empezar a > buscar la respuesta. > Todos sabemos que para acceder a una variable de un dataframe usamos el > dolar. > cars$speed > nos da el contenido de la varible speed dentro del dataframe cars. > Pero si, en lugar de speed directamente, quiero poner el valor de una > variable... > > > v<-"speed" > > v > [1] "speed" > > cars$v > NULL > > ...claro, por que cars$v no existe. ¿Hay alguna forma de decirle al R que > esa v no es una "v", sino el valor de la variable v? Espero haberme > explicado bien. > > Muchas gracias > > > > > 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]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Patricia García González r-es.org/ [[alternative HTML version deleted]]
Jaume Tormo
2010-Sep-22 12:49 UTC
[R-es] crear acceder a un dataframe utilizando una variable
Hola, Lo que yo decía, trivial. Es la típica cosa que sabes que se tiene que poder hacer pero no sabes ni como empezar a buscar como hacerla. Muchas gracias a todos. El 22 de septiembre de 2010 14:18, Jaume Tormo <jautorbla@gmail.com>escribió:> Hola a todos. > > Tengo una pregunta, creo que trivial, pero no se ni por donde empezar a > buscar la respuesta. > Todos sabemos que para acceder a una variable de un dataframe usamos el > dolar. > cars$speed > nos da el contenido de la varible speed dentro del dataframe cars. > Pero si, en lugar de speed directamente, quiero poner el valor de una > variable... > > > v<-"speed" > > v > [1] "speed" > > cars$v > NULL > > ...claro, por que cars$v no existe. ¿Hay alguna forma de decirle al R que > esa v no es una "v", sino el valor de la variable v? Espero haberme > explicado bien. > > Muchas gracias > > > > > 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 >-- 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]]
Horacio Claudio Morales Torres
2010-Sep-22 12:56 UTC
[R-es] crear acceder a un dataframe utilizando una variable
Estimado Jaume: No entendí tu pregunta, cuando dices "quiero poner el valor de una variable..." ¿te refieres a un sólo valor en específico?, por que estrictamente hablando, la variable "speed" tiene varios valores. Cuando tu haces v<- cars$speed v se convierte en el vector cars$speed y al poner v obtienes lo mismo que al poner cars$speed si pones v<-"speed" Sólo adjudicaste a v un nombre, en este caso "speed", pero pudo ser "pancho", o "cleta". Bueno, espero no haberte confundido más. saludos On 22/09/10 07:18, Jaume Tormo wrote:> Hola a todos. > > Tengo una pregunta, creo que trivial, pero no se ni por donde empezar a > buscar la respuesta. > Todos sabemos que para acceder a una variable de un dataframe usamos el > dolar. > cars$speed > nos da el contenido de la varible speed dentro del dataframe cars. > Pero si, en lugar de speed directamente, quiero poner el valor de una > variable... > > >> v<-"speed" >> v >> > [1] "speed" > >> cars$v >> > NULL > > ...claro, por que cars$v no existe. ¿Hay alguna forma de decirle al R que > esa v no es una "v", sino el valor de la variable v? Espero haberme > explicado bien. > > Muchas gracias > > > > > 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]] > > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Jaume Tormo
2010-Sep-22 13:14 UTC
[R-es] crear acceder a un dataframe utilizando una variable
Hola Horacio, El problema es que esto me pasa a veces dentro de un bucle. p.e. un for(). En el for hay una variable que en cada vuelta va cambiando de valor. Lo que yo quiero es que para cada vuelta del bulcle este me saque un valor del dataframe. Cual valor ha de sacar se lo indica la variable del bucle. Por eso digo el valor de la variable, por que es el valor que va tomando la variable del bucle a cada vuelta. ¿Me he explicado? Muchas gracias. El 22 de septiembre de 2010 14:56, Horacio Claudio Morales Torres < dragonite_05@hotmail.com> escribió:> Estimado Jaume: > > No entendí tu pregunta, cuando dices "quiero poner el valor de una > variable..." ¿te refieres a un sólo valor en específico?, por que > estrictamente hablando, la variable "speed" tiene varios valores. Cuando > tu haces > > v<- cars$speed > > v se convierte en el vector cars$speed > y al poner > > v > > obtienes lo mismo que al poner > > cars$speed > > si pones > > v<-"speed" > > Sólo adjudicaste a v un nombre, en este caso "speed", pero pudo ser > "pancho", o "cleta". > > Bueno, espero no haberte confundido más. > > saludos > > > > On 22/09/10 07:18, Jaume Tormo wrote: > > Hola a todos. > > > > Tengo una pregunta, creo que trivial, pero no se ni por donde empezar a > > buscar la respuesta. > > Todos sabemos que para acceder a una variable de un dataframe usamos el > > dolar. > > cars$speed > > nos da el contenido de la varible speed dentro del dataframe cars. > > Pero si, en lugar de speed directamente, quiero poner el valor de una > > variable... > > > > > >> v<-"speed" > >> v > >> > > [1] "speed" > > > >> cars$v > >> > > NULL > > > > ...claro, por que cars$v no existe. ¿Hay alguna forma de decirle al R que > > esa v no es una "v", sino el valor de la variable v? Espero haberme > > explicado bien. > > > > Muchas gracias > > > > > > > > > > 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]] > > > > > > > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > 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]]
Carlos J. Gil Bellosta
2010-Sep-22 13:34 UTC
[R-es] crear acceder a un dataframe utilizando una variable
Hola, ¿qué tal? En realidad, un data.frame es un tipo especial de lista. De hecho,> is.list( iris )[1] TRUE Por tanto, funcionan> iris[["Sepal.Width"]]y también> mi.var <- "Sepal.Width" > iris[[ mi.var ]]Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com
Carlos J. Gil Bellosta
2010-Sep-22 13:37 UTC
[R-es] crear acceder a un dataframe utilizando una variable
En tal caso, te vale algo así como: for( col.name in colnames( iris ) ) sum( iris[[ col.name ]] ) Aunque existen alternativas usando apply o sapply. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 22 de septiembre de 2010 15:14, Jaume Tormo <jautorbla en gmail.com> escribió:> Hola Horacio, > > El problema es que esto me pasa a veces dentro de un bucle. p.e. un for(). > En el for hay una variable que en cada vuelta va cambiando de valor. Lo que > yo quiero es que para cada vuelta del bulcle este me saque un valor del > dataframe. Cual valor ha de sacar se lo indica la variable del bucle. Por > eso digo el valor de la variable, por que es el valor que va tomando la > variable del bucle a cada vuelta. > ¿Me he explicado? >
Patricio Fuenmayor Viteri
2010-Sep-22 14:05 UTC
[R-es] crear acceder a un dataframe utilizando una variable
Saludos Jaume.No es tan trivial lo que preguntas, es un tema de tener claro el uso de clases en R y su estructura.Un dataframe puede ser visto como arreglo de filas y columnas con ciertas características adicionales.Entiendo lo que quieres hacer, por eso es importante que tengas claro como poder llamar a las filas o columnas. La forma de hacer referencia a las dimensiones es mediante [] los corchetes. Es así que si quieres llamar a un elemento de tu df cars (fila 1 columna 1), debes usar cars[1,1].si quieres llamar a toda una columna debes usar cars[,1], esto llama a la primera columna de tu df.Es así que para un bucle, la idea es que el parámetro de columnas sea variable.digamos que cars es de dimensión 30 filas, 5 columas y quieres llamar solamente a las 2 primeras columnas:for(i in 1:2){plot(cars[,i])}Espero te sirva. Message: 1Date: Wed, 22 Sep 2010 14:18:44 +0200From: Jaume Tormo <jautorbla@gmail.com>To: r-help-es@r-project.orgSubject: [R-es] crear acceder a un dataframe utilizando una variableMessage-ID:<AANLkTinBgLPv7ynmgXp+aBObrwPwg1p5Fa1fWtbsQuPz@mail.gmail.com>Content-Type: text/plainHola a todos.Tengo una pregunta, creo que trivial, pero no se ni por donde empezar abuscar la respuesta.Todos sabemos que para acceder a una variable de un dataframe usamos eldolar.cars$speednos da el contenido de la varible speed dentro del dataframe cars.Pero si, en lugar de speed directamente, quiero poner el valor de unavariable...> v<-"speed"> v[1] "speed"> cars$vNULL...claro, por que cars$v no existe. ¿Hay alguna forma de decirle al R queesa v no es una "v", sino el valor de la variable v? Espero habermeexplicado bien.Muchas graciasJaume Tormo BlanesIMEM Ramon Margalef.Carretera San Vicente del Raspeig s/n03690 San Vicente del Raspeig - Alicantewww.ua.esacercad.wordpress.com [[alternative HTML version deleted]]
Jaume Tormo
2010-Sep-22 14:14 UTC
[R-es] crear acceder a un dataframe utilizando una variable
Hola a todos, Muchas gracias por las respuestas. En este caso con el uso de los corchetes en lugar del $ y con lo de tratar el df como lista he arreglado el problema. Este problema ya me ha surgido otras veces, una vez he conseguido arreglarlo con bucles y otras con la familia "apply". No dudéis que la próxima vez que tenga este problema os cuelgo el dataframe entero ;-) puede que no tarde mucho. Gracias de nuevo a todos. El 22 de septiembre de 2010 15:39, Usuario R <r.user.spain@gmail.com>escribió:> Hola Jauma. > > Creo que esto es mucho mas sencillo de hacer y no necesitas un bucle. Crees > que puedes mandarme o mandar a la lista cómo es el data frame y un ejemplo > de los valores que toma la variable? > Seguramente con alguna funcion tipo tapply o lapply lo puedes hacer sin > bucles. > > un saludo > Patricia > > > > El 22 de septiembre de 2010 15:14, Jaume Tormo <jautorbla@gmail.com>escribió: > > Hola Horacio, >> >> El problema es que esto me pasa a veces dentro de un bucle. p.e. un for(). >> En el for hay una variable que en cada vuelta va cambiando de valor. Lo >> que >> yo quiero es que para cada vuelta del bulcle este me saque un valor del >> dataframe. Cual valor ha de sacar se lo indica la variable del bucle. Por >> eso digo el valor de la variable, por que es el valor que va tomando la >> variable del bucle a cada vuelta. >> ¿Me he explicado? >> >> Muchas gracias. >> >> El 22 de septiembre de 2010 14:56, Horacio Claudio Morales Torres < >> dragonite_05@hotmail.com> escribió: >> >> > Estimado Jaume: >> > >> > No entendí tu pregunta, cuando dices "quiero poner el valor de una >> > variable..." ¿te refieres a un sólo valor en específico?, por que >> > estrictamente hablando, la variable "speed" tiene varios valores. Cuando >> > tu haces >> > >> > v<- cars$speed >> > >> > v se convierte en el vector cars$speed >> > y al poner >> > >> > v >> > >> > obtienes lo mismo que al poner >> > >> > cars$speed >> > >> > si pones >> > >> > v<-"speed" >> > >> > Sólo adjudicaste a v un nombre, en este caso "speed", pero pudo ser >> > "pancho", o "cleta". >> > >> > Bueno, espero no haberte confundido más. >> > >> > saludos >> > >> > >> > >> > On 22/09/10 07:18, Jaume Tormo wrote: >> > > Hola a todos. >> > > >> > > Tengo una pregunta, creo que trivial, pero no se ni por donde empezar >> a >> > > buscar la respuesta. >> > > Todos sabemos que para acceder a una variable de un dataframe usamos >> el >> > > dolar. >> > > cars$speed >> > > nos da el contenido de la varible speed dentro del dataframe cars. >> > > Pero si, en lugar de speed directamente, quiero poner el valor de una >> > > variable... >> > > >> > > >> > >> v<-"speed" >> > >> v >> > >> >> > > [1] "speed" >> > > >> > >> cars$v >> > >> >> > > NULL >> > > >> > > ...claro, por que cars$v no existe. ¿Hay alguna forma de decirle al R >> que >> > > esa v no es una "v", sino el valor de la variable v? Espero haberme >> > > explicado bien. >> > > >> > > Muchas gracias >> > > >> > > >> > > >> > > >> > > 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]] >> > > >> > > >> > > >> > > >> > > _______________________________________________ >> > > R-help-es mailing list >> > > R-help-es@r-project.org >> > > https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > >> > >> > [[alternative HTML version deleted]] >> > >> > >> > _______________________________________________ >> > 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]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > > > -- > Patricia García González > r-es.org/ >-- 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]]