[R] function for filtering and deleting vector entries

Rui Barradas rui1174 at sapo.pt
Wed Feb 29 21:01:02 CET 2012


Hello,


babyluck wrote
> 
> Dear helpers
> 
> I have two data sets saved as vectors (temperature and velocity). Now I
> need to "take out" a span of temperature and its corresponding velocity in
> the other vector. How can I achieve that? 
> 
> I tried to write a function,which takes a vector entry and then decides
> wether to delete the temperature entry or not and  simultaneously doing so
> with same entry in the velocity vector..
> But somehow it's not working...could somebody please help me? 
> Thanks a lot..
> 
> 
> norm = function(Temp,v){
> 	for (i in 1:length(Temp)){
> 		
> 		if (Temp[i]<=16 || Temp[i] >= 38.5)
> 		 {Temp[-i];v[-i]}
> 
> 		return(Temp,v)
> 	}
> }
> 

Your function is not changing 'Temp' nor 'v', just choosing subsets of them.
And you 'return' at the end of the first iteration...
(And you can only return one value)

Try


fun <- function(Temp, v){
	unwanted <- Temp <= 16 | Temp >= 38.5
	Temp <- Temp[!unwanted]
	v <- v[!unwanted]
	list(Temp=Temp, v=v)
}

(tt <- seq(10, 40, by=0.5))
(vv <- 1:length(tt))
fun(tt, vv)

I've changed the name because 'norm' is a  R function name. See ?norm

Hope this helps,

Rui Barradas


--
View this message in context: http://r.789695.n4.nabble.com/function-for-filtering-and-deleting-vector-entries-tp4432410p4432772.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list