[R] Defining partial list of variables

Eric Berger er|cjberger @end|ng |rom gm@||@com
Tue Jan 5 12:08:02 CET 2021


wrap it in unlist

xx <- unlist(strsplit( .... ))



On Tue, Jan 5, 2021 at 12:59 PM Steven Yen <styen using ntu.edu.tw> wrote:

> Thanks Eric. Perhaps I should know when to stop. The approach produces a
> slightly different variable list (note the [[1]]). Consequently, I was not
> able to use xx in defining my regression formula.
>
> > x<-colnames(subset(mydata,select=c(
>
> +    hhsize,urban,male,
> +    age3045,age4659,age60, # age1529
> +    highsc,tert,           # primary
> +    gov,nongov,            # unemp
> +    married))); x
>  [1] "hhsize"  "urban"   "male"    "age3045" "age4659" "age60"   "highsc"
> "tert"
>  [9] "gov"     "nongov"  "married"
> > xx<-strsplit(gsub("[\n ]","",
> +    "hhsize,urban,male,
> +     age3045,age4659,age60,
> +     highsc,tert,
> +     gov,nongov,
> +     married"
> + ),","); xx
> [[1]]
>  [1] "hhsize"  "urban"   "male"    "age3045" "age4659" "age60"   "highsc"
> "tert"
>  [9] "gov"     "nongov"  "married"
>
> > eq1<-my.formula(y="cig",x=x); eq1
> cig ~ hhsize + urban + male + age3045 + age4659 + age60 + highsc +
>     tert + gov + nongov + married
> > eq2<-my.formula(y="cig",x=xx); eq2
> cig ~ c("hhsize", "urban", "male", "age3045", "age4659", "age60",
>     "highsc", "tert", "gov", "nongov", "married")
>
> On 2021/1/5 下午 06:01, Eric Berger wrote:
>
> If your column names have no spaces the following should work
>
>  x<-strsplit(gsub("[\n ]","",
>              "hhsize,urban,male,
> +             gov,nongov,married"),","); x
>
> On Tue, Jan 5, 2021 at 11:47 AM Steven Yen <styen using ntu.edu.tw> wrote:
>
>> Here we go! BUT, it works great for a continuous line. With line
>> break(s), I got the nuisance "\n" inserted.
>>
>> > x<-strsplit("hhsize,urban,male,gov,nongov,married",","); x
>> [[1]]
>> [1] "hhsize"  "urban"   "male"    "gov"     "nongov"  "married"
>>
>> > x<-strsplit("hhsize,urban,male,
>> +             gov,nongov,married",","); x
>> [[1]]
>> [1] "hhsize"            "urban"             "male"
>> "\n            gov"
>> [5] "nongov"            "married"
>> On 2021/1/5 下午 05:34, Eric Berger wrote:
>>
>>
>> zx<-strsplit("age,exercise,income,white,black,hispanic,base,somcol,grad,employed,unable,homeowner,married,divorced,widowed",",")
>>
>>
>>
>> On Tue, Jan 5, 2021 at 11:01 AM Steven Yen <styen using ntu.edu.tw> wrote:
>>
>>> Thank you, Jeff. IMO, we are all here to make R work better to suit our
>>> various needs. All I am asking is an easier way to define variable list
>>> zx, differently from the way z0 , x0, and treat are defined.
>>>
>>>  > zx<-colnames(subset(mydata,select=c(
>>> + age,exercise,income,white,black,hispanic,base,somcol,grad,employed,
>>> +     unable,homeowner,married,divorced,widowed)))
>>>  > z0<-c("fruit","highblood")
>>>  > x0<-c("vgood","poor")
>>>  > treat<-"depression"
>>>  > eq1 <-my.formula(y="depression",x=zx,z0)
>>>  > eq2 <-my.formula(y="bmi",       x=zx,x0)
>>>  > eq2t<-my.formula(y="bmi",       x=zx,treat)
>>>  > eqs<-list(eq1,eq2); eqs
>>> [[1]]
>>> depression ~ age + exercise + income + white + black + hispanic +
>>>      base + somcol + grad + employed + unable + homeowner + married +
>>>      divorced + widowed + fruit + highblood
>>>
>>> [[2]]
>>> bmi ~ age + exercise + income + white + black + hispanic + base +
>>>      somcol + grad + employed + unable + homeowner + married +
>>>      divorced + widowed + vgood + poor
>>>
>>>  > eqt<-list(eq1,eq2t); eqt
>>> [[1]]
>>> depression ~ age + exercise + income + white + black + hispanic +
>>>      base + somcol + grad + employed + unable + homeowner + married +
>>>      divorced + widowed + fruit + highblood
>>>
>>> [[2]]
>>> bmi ~ age + exercise + income + white + black + hispanic + base +
>>>      somcol + grad + employed + unable + homeowner + married +
>>>      divorced + widowed + depression
>>>
>>> On 2021/1/5 下午 04:18, Jeff Newmiller wrote:
>>> > IMO if you want to hardcode a formula then simply hardcode a formula.
>>> If you want 20 formulas, write 20 formulas. Is that really so bad?
>>> >
>>> > If you want to have an abbreviated way to specify sets of variables
>>> without conforming to R syntax then put them into data files and read them
>>> in using a format of your choice.
>>> >
>>> > But using NSE to avoid using quotes for entering what amounts to
>>> in-script data is abuse of the language justified by laziness... the amount
>>> of work you put yourself and anyone else who reads your code through is
>>> excessive relative to the benefit gained.
>>> >
>>> > NSE has its strengths... but as a method of creating data objects it
>>> sucks. Note that even the tidyverse (now) requires you to use quotes when
>>> you are not directly referring to something that already exists. And if you
>>> were... you might as well be creating a formula.
>>> >
>>> > On January 4, 2021 11:14:54 PM PST, Steven Yen <styen using ntu.edu.tw>
>>> wrote:
>>> >> I constantly define variable lists from a data frame (e.g., to define
>>> a
>>> >>
>>> >> regression equation). Line 3 below does just that. Placing each
>>> >> variable
>>> >> name in quotation marks is too much work especially for a long list so
>>> >> I
>>> >> do that with line 4. Is there an easier way to accomplish this----to
>>> >> define a list of variable names containing "a","c","e"? Thank you!
>>> >>
>>> >>> data<-as.data.frame(matrix(1:30,nrow=6))
>>> >>> colnames(data)<-c("a","b","c","d","e"); data
>>> >>    a  b  c  d  e
>>> >> 1 1  7 13 19 25
>>> >> 2 2  8 14 20 26
>>> >> 3 3  9 15 21 27
>>> >> 4 4 10 16 22 28
>>> >> 5 5 11 17 23 29
>>> >> 6 6 12 18 24 30
>>> >>> x1<-c("a","c","e"); x1 # line 3
>>> >> [1] "a" "c" "e"
>>> >>> x2<-colnames(subset(data,select=c(a,c,e))); x2 # line 4
>>> >> [1] "a" "c" "e"
>>> >>
>>> >> ______________________________________________
>>> >> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> >> https://stat.ethz.ch/mailman/listinfo/r-help
>>> >> PLEASE do read the posting guide
>>> >> http://www.R-project.org/posting-guide.html
>>> >> and provide commented, minimal, self-contained, reproducible code.
>>>
>>> ______________________________________________
>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>

	[[alternative HTML version deleted]]



More information about the R-help mailing list