Re: [R] Beginner Loop Question with dynamic variable names

From: Mike Nielsen <mr.blacksheep_at_gmail.com>
Date: Mon 25 Sep 2006 - 13:28:31 GMT

Is this what you had in mind?

> j<-data.frame(q1=rnorm(10),q2=rnorm(10))
> j

           q1 q2

1  -0.9189618 -0.2832102
2   0.9394316  1.1345975
3  -0.6388848  0.6850255
4   0.4938245 -0.5825715
5  -1.2885257 -0.2654023
6  -0.5278295  0.2382791
7   0.6517268  0.8923375
8   0.4124178  1.1231630
9  -0.1604982  0.2285672
10 -0.2369713  0.6130197

> for(i in 1:3){j[,paste(sep="","res",i)]<-with(j,q1+q2)}
> j
                q1              q2            res1            res2
        res3
1  -0.9189618 -0.2832102 -1.20217207 -1.20217207 -1.20217207
2   0.9394316  1.1345975  2.07402913  2.07402913  2.07402913
3  -0.6388848  0.6850255  0.04614073  0.04614073  0.04614073
4   0.4938245 -0.5825715 -0.08874699 -0.08874699 -0.08874699
5  -1.2885257 -0.2654023 -1.55392802 -1.55392802 -1.55392802
6  -0.5278295  0.2382791 -0.28955044 -0.28955044 -0.28955044
7   0.6517268  0.8923375  1.54406433  1.54406433  1.54406433
8   0.4124178  1.1231630  1.53558084  1.53558084  1.53558084
9 -0.1604982 0.2285672 0.06806901 0.06806901 0.06806901 10 -0.2369713 0.6130197 0.37604847 0.37604847 0.37604847

Regards,

Mike
On 9/25/06, Peter Wolkerstorfer - CURE <wolkerstorfer@cure.at> wrote:
> Dear all,
>
> I have another small scripting-beginner problem which you hopefully can
> help:
>
> I compute new variables with:
>
> # Question 1
> results$q1 <- with(results, q1_1*1+ q1_2*2+ q1_3*3+ q1_4*4+ q1_5*5)
> # Question 2
> results$q2 <- with(results, q2_1*1+ q2_2*2+ q2_3*3+ q2_4*4+ q2_5*5)
> # Question 3
> results$q3 <- with(results, q3_1*1+ q3_2*2+ q3_3*3+ q3_4*4+ q3_5*5)
> # Question 4
> results$q4 <- with(results, q4_1*1+ q4_2*2+ q4_3*3+ q4_4*4+ q4_5*5)
>
> This is very inefficient so I would like to do this in a loop like:
>
> for (i in 1:20) {results$q1 <- with(results, q1_1*1+ q1_2*2+ q1_3*3+
> q1_4*4+ q1_5*5)}
>
> My question now:
> How to replace the "1"-s (results$q1, q1_1...) in the variables with the
> looping variable?
>
> Here like I like it (just for illustration - of course I still miss the
> function to tell R that it should append the value of i to the variable
> name):
>
> # i is the number of questions - just an illustration, I know it does
> not work this way
> for (i in 1:20) {results$qi <- with(results, qi_1*1+ qi_2*2+ qi_3*3+
> qi_4*4+ qi_5*5)}
>
> Help would be greatly appreciated. Thanks in advance.
>
> Peter
>
>
> ___CURE - Center for Usability Research & Engineering___
>
> Peter Wolkerstorfer
> Usability Engineer
> Hauffgasse 3-5, 1110 Wien, Austria
>
> [Tel] +43.1.743 54 51.46
> [Fax] +43.1.743 54 51.30
>
> [Mail] wolkerstorfer@cure.at
> [Web] http://www.cure.at
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> 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.
>

-- 
Regards,

Mike Nielsen

______________________________________________
R-help@stat.math.ethz.ch mailing list
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.
Received on Mon Sep 25 23:31:18 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Mon 25 Sep 2006 - 14:30:07 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.