Le vendredi 09 mars 2012 à 13:24 +0330, Hassan Eini Zinab a écrit : > Dear All, > > I have a data set with variables x1, x2, x3, ..., x20 and I want to > create z1, z2, z3, ..., z20 with the following formula: > > > z1 = 200 - x1 > z2 = 200 - x2 > z3 = 200 - x3 > . > . > . > z20 = 200 - x20. > > > I tried using a for loop and its index as: > > for (i in 1:20) { > z(i) = 200 - x(i) > } > > But R gives the following error message: "Error: could not find function "x"". > > Is there any other way for a simple coding of my 20 lines of code? This is very basic, please read the R intro.
The problem is that x(i) means "call function x with argument i", and no function x exists (nor z, BTW). You need x1 <- 1:10 x2 <- 11:20 for (i in 1:2) { assign(paste("z", i, sep=""), 200 - get(paste("x", i, sep=""))) } But you'd better use a data frame to store these variables, in which case you can do: df <- data.frame(x1=1:10, x2=11:20) for (i in 1:2) { df[[paste("z", i, sep="")]] <- 200 - df[[paste("x", i, sep="")]] } You can also create a new data frame: xdf <- data.frame(x1=1:10, x2=11:20) zdf <- 200 - xdf colnames(zdf) <- paste("z", 1:2, sep="") df <- cbind(xdf, zdf) Regards ______________________________________________ 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.