[R] Romoving elements from a vector. Looking for the opposite of c(), New user

Thibaut Jombart jombart at biomserv.univ-lyon1.fr
Thu Nov 15 17:31:06 CET 2007


Thomas Frööjd wrote:

>Not sure i explained it good enough. Ill try with an example
>
>say
>
>x=[3,3,4,4,4,4,5,5,6,8]
>z=[3,4,4,5,5]
>
>what i want to get after removing z from x is something like
>x=[3,4,4,6,8]
>
>
>On Nov 15, 2007 3:29 PM, Charilaos Skiadas <cskiadas at gmail.com> wrote:
>  
>
>>On Nov 15, 2007, at 9:15 AM, Thomas Frööjd wrote:
>>
>>    
>>
>>>Hi
>>>
>>>I have three vectors say x, y, z. One of them, x contains observations
>>>on a variable. To x I want to append all observations from y and
>>>remove all from z. For appending c() is easily used
>>>
>>>x <- c(x,y)
>>>
>>>But how do I remove all observations in z from x? You can say I am
>>>looking for the opposite of c().
>>>      
>>>
>>If you are looking for the opposite of c, provided you want to remove
>>the first part of things, then perhaps this would work:
>>
>>z<-c(x,y)
>>z[-(1:length(x))]
>>
>>However, if you wanted to remove all appearances of elements of x
>>from c(x,y), regardless of whether those elements appear in the x
>>part of in the y part, I think you would want:
>>
>>z[!z %in% x]
>>
>>Probably there are other ways.
>>
>>Welcome to R!
>>
>>    
>>
>>>Best regards
>>>      
>>>
>>Haris Skiadas
>>Department of Mathematics and Computer Science
>>Hanover College
>>
>>______________________________________________
>>R-help at 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.
>>
>>    
>>
>
>______________________________________________
>R-help at 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.
>
>
>
>  
>
Hi,

you may try this :

x=[3,3,4,4,4,4,5,5,6,8]
z=c(3,4,4,5,5)

 f1 <- function(vec,toremove){
+
+   for(elem in toremove){
+     temp <- grep(elem,vec)[1]
+     if(!is.na(temp)) vec <- vec[-temp]
+   }
+
+   return(vec)
+ }

 > f1(x,z)
[1] 3 4 4 6 8

Regards,

Thibaut.

-- 
######################################
Thibaut JOMBART
CNRS UMR 5558 - Laboratoire de Biométrie et Biologie Evolutive
Universite Lyon 1
43 bd du 11 novembre 1918
69622 Villeurbanne Cedex
Tél. : 04.72.43.29.35
Fax : 04.72.43.13.88
jombart at biomserv.univ-lyon1.fr
http://lbbe.univ-lyon1.fr/-Jombart-Thibaut-.html?lang=en
http://pbil.univ-lyon1.fr/software/adegenet/



More information about the R-help mailing list