Hi Tiff > data1 <- data.frame(SP = c(2, 2, 1), A1 = 1:3) > data1 SP A1 1 2 1 2 2 2 3 1 3 > i <- 1 > data1$SP [1] 2 2 1 > data1$SP[i] [1] 2 > # a warning is generated when > # the length of the argument is > # greater than 1 > if(c(TRUE, TRUE, TRUE)) print("TRUE") [1] "TRUE" Warning message: In if (c(TRUE, TRUE, TRUE)) print("TRUE") : the condition has length > 1 and only the first element will be used > # subset by i to select element of interest > for(i in 1:3) { + if(data1$SP[i] == 1) + data1$A1[i] <- 1 + } > data1 SP A1 1 2 1 2 2 2 3 1 1
Hope this helps, Chris Chris Campbell MANGO SOLUTIONS Data Analysis that Delivers +44 1249 705450 -----Original Message----- From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On Behalf Of titta majasalmi Sent: 09 March 2012 07:20 To: r-help@r-project.org Subject: [R] Loop struggle Hi, I cannot get rid of this error message: "Warning messages: 1: In if (data$SP == 1) { : the condition has length > 1 and only the first element will be used 2: In if (data$SP == 1) { : the condition has length > 1 and only the first element will be used 3: In if (data$SP == 1) { : the condition has length > 1 and only the first element will be used > data$A5 [1] 1 1 1" The loop seems to be stuck within the first loop. I have data (in .csv format) witch contains one example of each SP within the data, so the output should look like "123" instead of "111". This example is simplified version just to give you the idea of the problem. What is wrong within my code? I have tried everything imaginable and cannot figure it out. for (i in 1:n) { if (data$SP==1){ data[1:n, "A1"]<- data$A1 <-1 data[1:n, "A2"]<- data$A2 <-1 data[1:n, "A3"]<- data$A3 <-1 data[1:n, "A4"]<- data$A4 <-1 data[1:n, "A5"]<- data$A5 <-1} else if(data$SP==2){ data[1:n, "A1"]<- data$A1 <-2 data[1:n, "A2"]<- data$A2 <-2 data[1:n, "A3"]<- data$A3 <-2 data[1:n, "A4"]<- data$A4 <-2 data[1:n, "A5"]<- data$A5 <-2} else if(data$SP==3){ data[1:n, "A1"]<-data$A1 <-3 data[1:n, "A2"]<-data$A2 <-3 data[1:n, "A3"]<-data$A3 <-3 data[1:n, "A4"]<-data$A4 <-3 data[1:n, "A5"]<-data$A5 <-3} } -Tiff [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org 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. LEGAL NOTICE This message is intended for the use o...{{dropped:10}} ______________________________________________ R-help@r-project.org 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.