Hi, I am having a problem in doing something similar to this example: Suppose I have this vector a, and from it I wish to create 5 other vector each one with less one value than what object a has So I have "a" a<-c(1,2,3,4,5) and I want a1 that shoud have (2,3,4,5) a2 that should have (1,3,4,5) a3 that should have (1,2,4,5) a4 that should have (1,2,3,5) a5 that should have (1,2,3,4) I have tried like this but with no luck For ( i in 1:5) { a<-c(1,2,3,4,5) a((i)<-a[-i] } Is there a way to do this? thank you A.Dias -- View this message in context: http://r.789695.n4.nabble.com/Help-with-For-instruction-tp3173074p3173074.html Sent from the R help mailing list archive at Nabble.com.
> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] > On Behalf Of ADias > Sent: Monday, January 03, 2011 10:00 PM > To: r-help at r-project.org > Subject: [R] Help with "For" instruction > > > Hi, > > I am having a problem in doing something similar to this example: > > Suppose I have this vector a, and from it I wish to create 5 other vector > each one with less one value than what object a has > > So I have "a" > a<-c(1,2,3,4,5) > > and I want > > a1 that shoud have (2,3,4,5) > a2 that should have (1,3,4,5) > a3 that should have (1,2,4,5) > a4 that should have (1,2,3,5) > a5 that should have (1,2,3,4) > > I have tried like this but with no luck > > > For ( i in 1:5) { > a<-c(1,2,3,4,5) > a((i)<-a[-i] > } > > Is there a way to do this? > > thank you > > A.DiasDoes this do what you want? for(i in 1:length(a)) assign(paste('a', i, sep=''), a[-i]) Hope this is helpful, Dan Daniel Nordlund Bothell, WA USA
On Jan 4, 2011, at 1:00 AM, ADias wrote:> > Hi, > > I am having a problem in doing something similar to this example: > > Suppose I have this vector a, and from it I wish to create 5 other > vector > each one with less one value than what object a has > > So I have "a" > a<-c(1,2,3,4,5) > > and I want > > a1 that shoud have (2,3,4,5) > a2 that should have (1,3,4,5) > a3 that should have (1,2,4,5) > a4 that should have (1,2,3,5) > a5 that should have (1,2,3,4) > > I have tried like this but with no luck > > For ( i in 1:5) { > a<-c(1,2,3,4,5) > a((i)<-a[-i] > } > > Is there a way to do this?Dan showed you a method using assign (since that is what is needed for what you asked for) but you would get a more flexible result if you used a structure that could be easily indexed such as a matrix or list: > A <- sapply(1:5, function(i) a[-i]) > colnames(A) <- paste("a", 1:5, sep="") > A a1 a2 a3 a4 a5 [1,] 2 1 1 1 1 [2,] 3 3 2 2 2 [3,] 4 4 4 3 3 [4,] 5 5 5 5 4 So: > A[ ,"a1"] [1] 2 3 4 5>-- David Winsemius, MD West Hartford, CT
Hi thank you all. I think I have what I need to solve my problem. Regards, A.Dias -- View this message in context: http://r.789695.n4.nabble.com/Help-with-For-instruction-tp3173074p3173386.html Sent from the R help mailing list archive at Nabble.com.
Hi, Still with the above problem: But for instance, i have a data base with 30 variables and I created an object each with one varibale missing: DataBase - has 30 variables DataBase1 has 29 variables with the 1st variable gone DataBase2 has 29 variables with the 2nd variable gone for(i in 1:length(database)) assign(paste("database",i,sep=""),database[-i]) Now, I wish to create the 30 distance matrix: for (i in 1:length(database)) assign(paste("distancematrix",i,sep=""), dist(database[i])) But doing like this - database[i] - I am just refering to the 1st value on the object database and not to the entire database i. How do I do this? thanks Regards, A.Dias -- View this message in context: http://r.789695.n4.nabble.com/Help-with-For-instruction-tp3173074p3173914.html Sent from the R help mailing list archive at Nabble.com.
hi how do I exactly use the get(). I am reading the help for get() but the way I am using it causes an error/ thanks ADias 2011/1/4 Sarah Goslee <sarah.goslee@gmail.com>> With get(). > > On Tue, Jan 4, 2011 at 11:58 AM, ADias <diasandre@gmail.com> wrote: > > > > Hi, > > > > Still with the above problem: > > > > But for instance, i have a data base with 30 variables and I created an > > object each with one varibale missing: > > > > DataBase - has 30 variables > > DataBase1 has 29 variables with the 1st variable gone > > DataBase2 has 29 variables with the 2nd variable gone > > > > for(i in 1:length(database)) > assign(paste("database",i,sep=""),database[-i]) > > > > > > Now, I wish to create the 30 distance matrix: > > > > for (i in 1:length(database)) > > assign(paste("distancematrix",i,sep=""), > > dist(database[i])) > > > > But doing like this - database[i] - I am just refering to the 1st value > on > > the object database and not to the entire database i. > > > > How do I do this? > > > > thanks > > Regards, > > A.Dias > > -- > -- > Sarah Goslee > http://www.functionaldiversity.org >[[alternative HTML version deleted]]