DeaR useRs:
I would like to assign a values in an object using a loop 'for'.
This is a reduce example of my problem, my real problem is a few
complicated:
for (j in 1:10) {
x.j<-rnorm(100)
}
I want to create 10 objects as "x.1, x.2, ... , x.9, x.10" with values in
it.
I used the "assign" function but nothing happens.
Thank you very much
assign
6 messages · Perez Martin, Agustin, PIKAL Petr, Peter Wolf +3 more
Hi is it possible for you to use one object (data frame) and assign along its collumns?
x<-rep(0,10) x<-cbind(x,x,x,x,x,x) x
x x x x x x [1,] 0 0 0 0 0 0 [2,] 0 0 0 0 0 0 [3,] 0 0 0 0 0 0 [4,] 0 0 0 0 0 0 [5,] 0 0 0 0 0 0 [6,] 0 0 0 0 0 0 [7,] 0 0 0 0 0 0 [8,] 0 0 0 0 0 0 [9,] 0 0 0 0 0 0 [10,] 0 0 0 0 0 0
for(i in 1:6) x[,i]<-rnorm(10)
or you can use list in quite similar manner. Cheers Petr
On 7 Jan 2004 at 17:53, Perez Martin, Agustin wrote:
DeaR useRs:
I would like to assign a values in an object using a loop 'for'.
This is a reduce example of my problem, my real problem is a few
complicated:
for (j in 1:10) {
x.j<-rnorm(100)
}
I want to create 10 objects as "x.1, x.2, ... , x.9, x.10" with values
in it. I used the "assign" function but nothing happens. Thank you
very much
______________________________________________ R-help at stat.math.ethz.ch mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Petr Pikal petr.pikal at precheza.cz
Perez Martin, Agustin wrote:
DeaR useRs:
I would like to assign a values in an object using a loop 'for'.
This is a reduce example of my problem, my real problem is a few
complicated:
for (j in 1:10) {
x.j<-rnorm(100)
}
I want to create 10 objects as "x.1, x.2, ... , x.9, x.10" with values in
it.
I used the "assign" function but nothing happens.
Thank you very much
______________________________________________ R-help at stat.math.ethz.ch mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Use eval or assign:
> for(j in 1:10) eval(parse(text=paste("x",j,"<-",j,sep="")))
> x1
[1] 1
> x8
[1] 8
> for(j in 1:10) eval(parse(text=paste("x",j,"<-rnorm(10)",sep="")))
> x1
[1] 0.49045324 0.44842510 -1.18015351 -0.04325187 -0.75345939 -0.99181309
[7] 0.62517301 -0.68466635 0.33383560 -0.62189500
> x2
[1] -0.4344948 2.0276137 1.2783173 1.1170551 0.3546490 -0.0748969
[7] -0.8817247 -1.4649175 -1.5461995 -0.6575016
> for(j in 1:10) assign(paste("y",j,sep=""),rnorm(10))
> y1
[1] 1.7255925 0.4993323 1.8846513 0.2058971 0.2284036 -3.1971553
[7] -0.2629365 0.2724788 -0.9911388 -0.6341857
> y2
[1] 0.11301503 -1.28497666 0.40670853 0.08479014 1.05818411 -1.10843908
[7] 1.30441911 -0.49050833 -1.21438645 0.03923849
ls()
[1] "j" "x1" "x10" "x2" "x3" "x4" "x5" "x6" "x7" "x8" "x9" "y1"
[13] "y10" "y2" "y3" "y4" "y5" "y6" "y7" "y8" "y9"
pw
This is one way:
for (j in 1:10) {
assign(paste("x", j, sep="."), rnorm(100))
}
BTW, there have been many similar posts like this in the past. They are
easily found using the search function at
http://cran.r-project.org/search.html
HTH, Andy
On Wed, 7 Jan 2004, Perez Martin, Agustin wrote:
DeaR useRs:
I would like to assign a values in an object using a loop 'for'.
This is a reduce example of my problem, my real problem is a few
complicated:
for (j in 1:10) {
x.j<-rnorm(100)
}
I want to create 10 objects as "x.1, x.2, ... , x.9, x.10" with values in
it.
Actually, you assigned ten times to object x.j. As was mentioned earlier
today in reference to a different question, you will almost always find
that what you think you need and what works best are not the same - a list
here would be much more convenient:
x <- vector(mode="list", length=10)
for (j in 1:10) {
x[[j]] <- rnorm(100)
}
for example. For more complicated list elements, the arguments for using
lists are even stronger. Take a little time to make lists your friends,
they are powerful and flexible.
I used the "assign" function but nothing happens. Thank you very much
Roger Bivand Economic Geography Section, Department of Economics, Norwegian School of Economics and Business Administration, Breiviksveien 40, N-5045 Bergen, Norway. voice: +47 55 95 93 55; fax +47 55 95 93 93 e-mail: Roger.Bivand at nhh.no
Use assign().
varnames <- paste("x", 1:10, sep = ".")
for(j in 1:10) {
assign(varnames[j], rnorm(10))
}
-roger
Perez Martin, Agustin wrote:
DeaR useRs:
I would like to assign a values in an object using a loop 'for'.
This is a reduce example of my problem, my real problem is a few
complicated:
for (j in 1:10) {
x.j<-rnorm(100)
}
I want to create 10 objects as "x.1, x.2, ... , x.9, x.10" with values in
it.
I used the "assign" function but nothing happens.
Thank you very much
______________________________________________ R-help at stat.math.ethz.ch mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html