why not use this:
f <- function(v,i){
v.new <- v + 10
v.new[i] <- v[i]
v.new
}
###########
f(1:10,4)
f(1:10,8)
f(1:10,1)
f(1:10,10)I hope it helps.
Best, Dimitris
---- Dimitris Rizopoulos Ph.D. Student Biostatistical Centre School of Public Health Catholic University of Leuven
Address: Kapucijnenvoer 35, Leuven, Belgium Tel: +32/16/336899 Fax: +32/16/337015 Web: http://www.med.kuleuven.ac.be/biostat/ http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm
----- Original Message ----- From: "Robin Hankin" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Friday, February 25, 2005 2:52 PM
Subject: [R] restoring vector v from v[-i]
Hi
I have a little function that takes a vector v and an integer i. I want to manipulate
v[-i] (to give v.new, say) and
then put (unmanipulated) v[i] back into the appropriate place. For example,
f <- function(v,i){ v.new <- v[-i]+10 return(c(v.new[1:(i-1)],v[i],v.new[i:length(v.new)])) }
(my example is adding 10 to v[-i], but the real version is the solution of a complicated function involving
a call to Solve(A,b))
Function f() works most of the time: > f(1:10,4) [1] 11 12 13 4 15 16 17 18 19 20 > f(1:10,8) [1] 11 12 13 14 15 16 17 8 19 20
but fails at the "edges":
f(1:10,1) [1] 12 1 12 13 14 15 16 17 18 19 20 > f(1:10,10) [1] 11 12 13 14 15 16 17 18 19 10 NA 19 >
[ I would want f(1:10,1) to start 1,12,13,... and f(1:10,10) to end . . . 18 19,10]
How best to get intended behaviour for i=1 and i=length(v)?
-- Robin Hankin Uncertainty Analyst Southampton Oceanography Centre European Way, Southampton SO14 3ZH, UK tel 023-8059-7743
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
