Re: [R-es] Incluir un rango de varias variables explicativas a un modelo

2019-06-06 Por tema Rolando Valdez
Sí, más o menos así lo resolví:

nn <-names(wageszm14)
lvadd <- nn[grep("^lvadd", nn)]
(eqreg <- as.formula(paste("lwage ~ age + educ + percmen + marr + natlang
+", paste(lvadd, collapse = "+"
lwage ~ age + educ + percmen + marr + natlang + lvadd23_pot23 +
lvadd3133_pot3133 + lvadd_commer_pot_commer +
lvadd_communic_pot_communic +
lvadd_hserv_pot_hserv + lvadd62_pot62 + lvadd_host_pot_host +
lvadd81_pot81

Con eso quedó resuelto.

Gracias a todos por sus respuestas.



El mié., 5 de jun. de 2019 a la(s) 14:15, Juan Abasolo (juan.abas...@ehu.eus)
escribió:

> Meto cuchara y disculpen si es una tontería:
> Y si creás un objeto con los nombres de las variables? y si solamente te
> interesan las que cumplan no sé qué característica en el nombre, pedirlo.
>
> pabuscar <- sort(names(tudataframe))
> pabuscar[grep('x', pabuscar)]
>
> Los que saben seguro que lo hacen más lindo, pero yo creo que eso te
> funcionaría y no es difacil. Suerte
>
> Hau idatzi du Rolando Valdez (rvald...@gmail.com) erabiltzaileak (2019
> eka. 4, ar. (05:43)):
>
>> Hola, gracias por la respuesta,
>>
>> No me funcionó debido a que los nombres de las variables no están
>> seriadas,
>> es decir, los nombres de las variables son del tipo: x23 x25 x30, x301
>> x320, x80. Entonces me da este error:
>> Error in eval(predvars, data, env) : object 'pot24' not found. Debido a
>> que
>> pot24 no existe, ya que de pot23 se brinca a pot30.
>>
>> En Stata es algo muy simple de hacer, solo tengo que especificar gl
>> indepvars "x23-x80" y ya. En R no logro hacerlo.
>>
>> ¿Alguna otra sugerencia?
>>
>> Gracias de antemano.
>>
>> El lun., 3 de jun. de 2019 a la(s) 04:50, Carlos Ortega (
>> c...@qualityexcellence.es) escribió:
>>
>> > Hola,
>> >
>> > Mira la función "*as.formula()*".
>> > Incluye un ejemplo muy parecido a lo que estás queriendo hacer.
>> >
>> > Saludos,
>> > Carlos Ortega
>> > www.qualityexcellence.es
>> >
>> > El lun., 3 jun. 2019 a las 1:00, Rolando Valdez ()
>> > escribió:
>> >
>> >> Hola,
>> >>
>> >> Quiero especificar una ecuación con varias variables explicativas de
>> una
>> >> manera eficiente sin necesidad de escribir todas y cada una. Tengo un
>> >> conjunto de variables (junto con otras) dentro de una base de datos
>> que se
>> >> llaman pot23 pot311 pot312 pot 316 pot317... pot80. No
>> >> necesariamente están secuenciadas. Quisiera saber cómo indicar que
>> incluya
>> >> todas las variables de pot23 a pot80 en una ecuación.
>> >>
>> >> He intentado lo siguiente, pero no funciona:
>> >>
>> >> > pots <- paste("pot",23:321, sep="")
>> >> > eqreg2 <- lwage~SEXO+EDAD+HLENGUA+ESCOACUM+marr+wageszm14[,pots]
>> >> > fit <- qregspiv(eqreg2, shpfile = zm15, tau = 0.5, nboot = 70, data =
>> >> wageszm14)
>> >> Error: Can't find columns `pot24`, `pot25`, `pot26`, `pot27`, `pot28`,
>> ...
>> >> (and 273 more) in `.data`.
>> >>
>> >> De igual forma, después estaría interesado en obtener el logaritmo de
>> >> todas
>> >> esas variables pot~
>> >>
>> >> Gracias de antemano por cualquier tipo de ayuda.
>> >>
>> >> --
>> >> Rol~
>> >>
>> >> [[alternative HTML version deleted]]
>> >>
>> >> ___
>> >> R-help-es mailing list
>> >> R-help-es@r-project.org
>> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >>
>> >
>> >
>> > --
>> > Saludos,
>> > Carlos Ortega
>> > www.qualityexcellence.es
>> >
>>
>>
>> --
>> Rol~
>>
>> [[alternative HTML version deleted]]
>>
>> ___
>> R-help-es mailing list
>> R-help-es@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
> --
> Juan Abasolo
>
> Hizkuntzaren eta Literaturaren Didaktika Saila | EUDIA ikerketa taldea
> Bilboko Hezkuntza Fakultatea
> Euskal Herriko Unibertsitatea
> UPV/EHU
>
> Sarriena auzoa z/g 48940 - Leioa (Bizkaia)
>
> T: (+34) 94 601 7567
> Telegram: @JuanAbasolo
> Skype: abasolo72
>
> Tutoretza ordutegia 
>


-- 
Rol~

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Incluir un rango de varias variables explicativas a un modelo

2019-06-05 Por tema Jorge I Velez
Hola Rolando,

Quizás subset() sea tu amigo en este caso.  Intenta:

## selecciona la variable dependiente y las variables independientes
d0 <- subset(wageszm14, select = c(lwage, SEXO:marr, pot23:pot317)

## ajusta el modelo
fit <- qregspiv(lwage ~ ., shpfile = zm15, tau = 0.5, nboot = 70, data = d0)

## resultados
summary(fit)

Saludos,
Jorge.-



On Sun, Jun 2, 2019 at 6:00 PM Rolando Valdez  wrote:

> Hola,
>
> Quiero especificar una ecuación con varias variables explicativas de una
> manera eficiente sin necesidad de escribir todas y cada una. Tengo un
> conjunto de variables (junto con otras) dentro de una base de datos que se
> llaman pot23 pot311 pot312 pot 316 pot317... pot80. No
> necesariamente están secuenciadas. Quisiera saber cómo indicar que incluya
> todas las variables de pot23 a pot80 en una ecuación.
>
> He intentado lo siguiente, pero no funciona:
>
> > pots <- paste("pot",23:321, sep="")
> > eqreg2 <- lwage~SEXO+EDAD+HLENGUA+ESCOACUM+marr+wageszm14[,pots]
> > fit <- qregspiv(eqreg2, shpfile = zm15, tau = 0.5, nboot = 70, data =
> wageszm14)
> Error: Can't find columns `pot24`, `pot25`, `pot26`, `pot27`, `pot28`, ...
> (and 273 more) in `.data`.
>
> De igual forma, después estaría interesado en obtener el logaritmo de todas
> esas variables pot~
>
> Gracias de antemano por cualquier tipo de ayuda.
>
> --
> Rol~
>
> [[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


Re: [R-es] Incluir un rango de varias variables explicativas a un modelo

2019-06-05 Por tema Carlos Ortega
Hola,

Mira este código para construir tu fórmula a partir de los nombres de tus
variables...

#---

library(dplyr)
library(randNames)

set.seed(1234)

# Creo unos nombres aletaorios como nombres de variables
# Esto lo tendrías de tu data.frame con "names(tu_data_frame)"
my_names <- 25 %>%
  rand_names(nationality = 'ES') %>%
  select(name.first)

mynam_vec <- as.vector(my_names$name.first)
mynam_vec

# Construyo una formula con los nombres de las variables
myformula <- vector()
for(i in 1:length(mynam_vec)) {
  tmp <- mynam_vec[i]
  if(i != length(mynam_vec)) {
  myformula <- paste0(myformula, tmp, sep=" + ", collapse = "")
  } else {
  myformula <- paste0(myformula, tmp, sep= '' )
  }
}
myform_end <- paste("lweg ~ ", myformula, sep = " ")
myform_end
class(myform_end)

# Y con la cadena la transformo en una formula
como_formula <- as.formula(myform_end)
como_formula
class(como_formula)
#---

Que produce este resultado:

> library(dplyr)
> library(randNames)
>
> set.seed(1234)
>
> # Creo unos nombres aletaorios como nombres de variables
> # Esto lo tendrías de tu data.frame con "names(tu_data_frame)"
> my_names <- 25 %>%
+   rand_names(nationality = 'ES') %>%
+   select(name.first)
>
> mynam_vec <- as.vector(my_names$name.first)
> mynam_vec
 [1] "sonia" "elisa" "adrian""irene" "laura" "joaquin"
  "raquel"
 [8] "eva"   "rodrigo"   "carmelo"   "vicenta"   "jordi" "nuria"
  "enrique"
[15] "luz"   "mohamed"   "alfredo"   "nieves""fatima""santiago"
 "francisco"
[22] "joaquin"   "jose"  "manuel""andrea"
>
> # Construyo una formula con los nombres de las variables
> myformula <- vector()
> for(i in 1:length(mynam_vec)) {
+   tmp <- mynam_vec[i]
+   if(i != length(mynam_vec)) {
+   myformula <- paste0(myformula, tmp, sep=" + ", collapse = "")
+   } else {
+   myformula <- paste0(myformula, tmp, sep= '' )
+   }
+ }
> myform_end <- paste("lweg ~ ", myformula, sep = " ")
> myform_end
[1] "lweg ~  sonia + elisa + adrian + irene + laura + joaquin + raquel +
eva + rodrigo + carmelo + vicenta + jordi + nuria + enrique + luz + mohamed
+ alfredo + nieves + fatima + santiago + francisco + joaquin + jose +
manuel + andrea"
> class(myform_end)
[1] "character"
>
> # Y con la cadena la transformo en una formula
> como_formula <- as.formula(myform_end)
> como_formula
lweg ~ sonia + elisa + adrian + irene + laura + joaquin + raquel +
eva + rodrigo + carmelo + vicenta + jordi + nuria + enrique +
luz + mohamed + alfredo + nieves + fatima + santiago + francisco +
joaquin + jose + manuel + andrea
> class(como_formula)
[1] "formula"

#-


Saludos,
Carlos Ortega
www.qualityexcellence.es


El mar., 4 jun. 2019 a las 5:43, Rolando Valdez ()
escribió:

> Hola, gracias por la respuesta,
>
> No me funcionó debido a que los nombres de las variables no están
> seriadas, es decir, los nombres de las variables son del tipo: x23 x25 x30,
> x301 x320, x80. Entonces me da este error:
> Error in eval(predvars, data, env) : object 'pot24' not found. Debido a
> que pot24 no existe, ya que de pot23 se brinca a pot30.
>
> En Stata es algo muy simple de hacer, solo tengo que especificar gl
> indepvars "x23-x80" y ya. En R no logro hacerlo.
>
> ¿Alguna otra sugerencia?
>
> Gracias de antemano.
>
> El lun., 3 de jun. de 2019 a la(s) 04:50, Carlos Ortega (
> c...@qualityexcellence.es) escribió:
>
>> Hola,
>>
>> Mira la función "*as.formula()*".
>> Incluye un ejemplo muy parecido a lo que estás queriendo hacer.
>>
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>> El lun., 3 jun. 2019 a las 1:00, Rolando Valdez ()
>> escribió:
>>
>>> Hola,
>>>
>>> Quiero especificar una ecuación con varias variables explicativas de una
>>> manera eficiente sin necesidad de escribir todas y cada una. Tengo un
>>> conjunto de variables (junto con otras) dentro de una base de datos que
>>> se
>>> llaman pot23 pot311 pot312 pot 316 pot317... pot80. No
>>> necesariamente están secuenciadas. Quisiera saber cómo indicar que
>>> incluya
>>> todas las variables de pot23 a pot80 en una ecuación.
>>>
>>> He intentado lo siguiente, pero no funciona:
>>>
>>> > pots <- paste("pot",23:321, sep="")
>>> > eqreg2 <- lwage~SEXO+EDAD+HLENGUA+ESCOACUM+marr+wageszm14[,pots]
>>> > fit <- qregspiv(eqreg2, shpfile = zm15, tau = 0.5, nboot = 70, data =
>>> wageszm14)
>>> Error: Can't find columns `pot24`, `pot25`, `pot26`, `pot27`, `pot28`,
>>> ...
>>> (and 273 more) in `.data`.
>>>
>>> De igual forma, después estaría interesado en obtener el logaritmo de
>>> todas
>>> esas variables pot~
>>>
>>> Gracias de antemano por cualquier tipo de ayuda.
>>>
>>> --
>>> Rol~
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ___
>>> R-help-es mailing list
>>> R-help-es@r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>
>>
>> --
>> Saludos,
>> Carlos Ortega
>> 

Re: [R-es] Incluir un rango de varias variables explicativas a un modelo

2019-06-05 Por tema Juan Abasolo
Meto cuchara y disculpen si es una tontería:
Y si creás un objeto con los nombres de las variables? y si solamente te
interesan las que cumplan no sé qué característica en el nombre, pedirlo.

pabuscar <- sort(names(tudataframe))
pabuscar[grep('x', pabuscar)]

Los que saben seguro que lo hacen más lindo, pero yo creo que eso te
funcionaría y no es difacil. Suerte

Hau idatzi du Rolando Valdez (rvald...@gmail.com) erabiltzaileak (2019 eka.
4, ar. (05:43)):

> Hola, gracias por la respuesta,
>
> No me funcionó debido a que los nombres de las variables no están seriadas,
> es decir, los nombres de las variables son del tipo: x23 x25 x30, x301
> x320, x80. Entonces me da este error:
> Error in eval(predvars, data, env) : object 'pot24' not found. Debido a que
> pot24 no existe, ya que de pot23 se brinca a pot30.
>
> En Stata es algo muy simple de hacer, solo tengo que especificar gl
> indepvars "x23-x80" y ya. En R no logro hacerlo.
>
> ¿Alguna otra sugerencia?
>
> Gracias de antemano.
>
> El lun., 3 de jun. de 2019 a la(s) 04:50, Carlos Ortega (
> c...@qualityexcellence.es) escribió:
>
> > Hola,
> >
> > Mira la función "*as.formula()*".
> > Incluye un ejemplo muy parecido a lo que estás queriendo hacer.
> >
> > Saludos,
> > Carlos Ortega
> > www.qualityexcellence.es
> >
> > El lun., 3 jun. 2019 a las 1:00, Rolando Valdez ()
> > escribió:
> >
> >> Hola,
> >>
> >> Quiero especificar una ecuación con varias variables explicativas de una
> >> manera eficiente sin necesidad de escribir todas y cada una. Tengo un
> >> conjunto de variables (junto con otras) dentro de una base de datos que
> se
> >> llaman pot23 pot311 pot312 pot 316 pot317... pot80. No
> >> necesariamente están secuenciadas. Quisiera saber cómo indicar que
> incluya
> >> todas las variables de pot23 a pot80 en una ecuación.
> >>
> >> He intentado lo siguiente, pero no funciona:
> >>
> >> > pots <- paste("pot",23:321, sep="")
> >> > eqreg2 <- lwage~SEXO+EDAD+HLENGUA+ESCOACUM+marr+wageszm14[,pots]
> >> > fit <- qregspiv(eqreg2, shpfile = zm15, tau = 0.5, nboot = 70, data =
> >> wageszm14)
> >> Error: Can't find columns `pot24`, `pot25`, `pot26`, `pot27`, `pot28`,
> ...
> >> (and 273 more) in `.data`.
> >>
> >> De igual forma, después estaría interesado en obtener el logaritmo de
> >> todas
> >> esas variables pot~
> >>
> >> Gracias de antemano por cualquier tipo de ayuda.
> >>
> >> --
> >> Rol~
> >>
> >> [[alternative HTML version deleted]]
> >>
> >> ___
> >> R-help-es mailing list
> >> R-help-es@r-project.org
> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
> >>
> >
> >
> > --
> > Saludos,
> > Carlos Ortega
> > www.qualityexcellence.es
> >
>
>
> --
> Rol~
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>


-- 
Juan Abasolo

Hizkuntzaren eta Literaturaren Didaktika Saila | EUDIA ikerketa taldea
Bilboko Hezkuntza Fakultatea
Euskal Herriko Unibertsitatea
UPV/EHU

Sarriena auzoa z/g 48940 - Leioa (Bizkaia)

T: (+34) 94 601 7567
Telegram: @JuanAbasolo
Skype: abasolo72

Tutoretza ordutegia 

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] Incluir un rango de varias variables explicativas a un modelo

2019-06-03 Por tema Carlos Ortega
Hola,

Mira la función "*as.formula()*".
Incluye un ejemplo muy parecido a lo que estás queriendo hacer.

Saludos,
Carlos Ortega
www.qualityexcellence.es

El lun., 3 jun. 2019 a las 1:00, Rolando Valdez ()
escribió:

> Hola,
>
> Quiero especificar una ecuación con varias variables explicativas de una
> manera eficiente sin necesidad de escribir todas y cada una. Tengo un
> conjunto de variables (junto con otras) dentro de una base de datos que se
> llaman pot23 pot311 pot312 pot 316 pot317... pot80. No
> necesariamente están secuenciadas. Quisiera saber cómo indicar que incluya
> todas las variables de pot23 a pot80 en una ecuación.
>
> He intentado lo siguiente, pero no funciona:
>
> > pots <- paste("pot",23:321, sep="")
> > eqreg2 <- lwage~SEXO+EDAD+HLENGUA+ESCOACUM+marr+wageszm14[,pots]
> > fit <- qregspiv(eqreg2, shpfile = zm15, tau = 0.5, nboot = 70, data =
> wageszm14)
> Error: Can't find columns `pot24`, `pot25`, `pot26`, `pot27`, `pot28`, ...
> (and 273 more) in `.data`.
>
> De igual forma, después estaría interesado en obtener el logaritmo de todas
> esas variables pot~
>
> Gracias de antemano por cualquier tipo de ayuda.
>
> --
> Rol~
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.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