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 at ntu.edu.tw
> <mailto:styen at 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 at ntu.edu.tw
>> <mailto:styen at 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 at ntu.edu.tw <mailto:styen at 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 at r-project.org <mailto:R-help at
r-project.org> mailing
>> list -- To UNSUBSCRIBE and more, see
>> >> https://stat.ethz.ch/mailman/listinfo/r-help
>> <https://stat.ethz.ch/mailman/listinfo/r-help>
>> >> PLEASE do read the posting guide
>> >> http://www.R-project.org/posting-guide.html
>> <http://www.R-project.org/posting-guide.html>
>> >> and provide commented, minimal, self-contained,
>> reproducible code.
>>
>> ______________________________________________
>> R-help at r-project.org <mailto:R-help at r-project.org>
mailing
>> list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> <https://stat.ethz.ch/mailman/listinfo/r-help>
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> <http://www.R-project.org/posting-guide.html>
>> and provide commented, minimal, self-contained, reproducible
>> code.
>>
[[alternative HTML version deleted]]