Skip to content

help in calculating ar on ranked vector

4 messages · Raymond Wong, Sebastián Daza, David Winsemius +1 more

#
Hi everyone,

I am new in R and programming. I have tried to remove the values out of 
range in some variables using a loop:

1)

var  <- names(est8vo[, 77:83])   # I got the variable names

 > var
[1] "p16.1" "p16.2" "p16.3" "p16.4" "p16.5" "p16.6" "p16.7"

for (i in 1:7)  {
var.i  <- var[i]
est8vo$var.i[ est8vo$var.i==3] <- 99
   }

I got this error:

Error in `$<-.data.frame`(`*tmp*`, "var.i", value = numeric(0)) :
   replacement has 0 rows, data has 215700


2) The second step would be to define the factors, but I got the same error:

for (i in 1:7)  {
var.i  <- var[i]
est8vo$var.i    <- factor(est8vo$var.i,
   levels=c(0, 1, 2, 99),
   labels=c("vac?o", "s?", "no", "doble marca")
   )
   }


I don't know how to do it.
Thank you in advance!
Sebastian
#
On Jan 12, 2011, at 10:54 PM, Sebasti?n Daza wrote:

            
You CANNOT use names like that. (It makes no sense to supply a vector  
argument to "$".) If you want to change every instance of 3 within  a  
group of columns. See if this works

est8vo[, 77:83] <-  sapply( est8vo[, 77:83], function(x) ifelse(x==3,  
99, x) )
est8vo[, 77:83] <- sapply(est8vo[, 77:83] , factor, labels=c("vac?o",  
"s?", "no", "doble marca"))
Wrong. Wrong. Wrong. And please forget about using "$" inside loops in  
the left-hand side. It is not designed for that.
David Winsemius, MD
West Hartford, CT
1 day later
#
Works for my examples. But you have not specified what you actual call 
to ar() was.

Uwe Ligges
On 12.01.2011 21:17, Raymond Wong wrote: