Defining partial list of variables
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
>> PLEASE do read the posting guide
>> 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.