Dear all, I have searched all over and didn?t found an answer :( Sorry, I'm new. I need urgently to "not analyse"the weight the ID's that have 07 in the position 3 and 4 respectively, 01 or 11 in positions 11 and 12 of ID variable. . I used the following code: base<--baseR[substr(baseR$'ID',3,4)!='03' &substr(baseR$'ID',11,12)!='01' &substr(baseR$'ID',11,12)!='11',] But, instead of removing just the id's that respect the 3 conditions simultaneously, base don't have all the id's that have 03 in the 3 and 4 positions os id variable, neither 01 in positions 11 and 12 of ID, neither 11 in positions 11 and 12 of ID variable.variable. So, it seems, that the code exclude all the conditions, as it was a OR (|) condition in spite of AND (&) condition. Can anyone help me please? I attach the data. Best, Rosa Oliveira __________________________________ Antes de imprimir este e-mail pense bem se tem mesmo que o fazer. H? cada vez menos ?rvores. N?o imprima, pense na sua responsabilidade e compromisso com o MEIO AMBIENTE! <http://pt.dreamstime.com/cora-ccedil-atildeo-criado-das-folhas-de-aacutervores-diferentes-thumb12275776.jpg> <http://pt.dreamstime.com/cora-ccedil-atildeo-criado-das-folhas-de-aacutervores-diferentes-thumb12275776.jpg>
Hello, Try placing the & immediately after the substr() conditions, like this: base <- baseR[substr(baseR[['ID']],3,4)!='03' & substr(baseR[['ID']],11,12)!='01' & substr(baseR[['ID']],11,12)!='11',] Maybe I'm wrong but R might have decided that the instructions were complete before the next lines were reached. And your attachment didn't make through. Use dput to post a data example. dput(head(baseR, 30)) #paste the output of this in a mail Hope this helps, Rui Barradas Citando Rosa Oliveira <rosita21 at gmail.com>:> Dear all, > > I have searched all over and didn?t found an answer :( Sorry, I'm new. > > I need urgently to "not analyse"the weight the ID's that have 07 in the > position 3 and 4 respectively, 01 or 11 in positions 11 and 12 of ID > variable. . > > I used the following code: > > base<--baseR[substr(baseR$'ID',3,4)!='03' > &substr(baseR$'ID',11,12)!='01' > &substr(baseR$'ID',11,12)!='11',] > > But, instead of removing just the id's that respect the 3 conditions > simultaneously, base don't have all the id's that have 03 in the 3 and 4 > positions os id variable, neither 01 in positions 11 and 12 of ID, > neither 11 > in positions 11 and 12 of ID variable.variable. > > So, it seems, that the code exclude all the conditions, as it was a OR (|) > condition in spite of AND (&) condition. > > Can anyone help me please? > > I attach the data. > > Best, > Rosa Oliveira > > __________________________________ > > Antes de imprimir este e-mail pense bem se tem mesmo que o fazer. > H? cada vez menos ?rvores. > N?o imprima, pense na sua responsabilidade e compromisso com o MEIO > AMBIENTE! > <http://pt.dreamstime.com/cora-ccedil-atildeo-criado-das-folhas-de-aacutervores-diferentes-thumb12275776.jpg> > <http://pt.dreamstime.com/cora-ccedil-atildeo-criado-das-folhas-de-aacutervores-diferentes-thumb12275776.jpg> > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.
Dear Rosa, you can use grep for pattern matching along the lines of: x <- c("000711111101", "000711111111", "000711111112","123456789123") grep("^[0-9]{2}07[0-9]{6}(01|11)", x) Here I assume that your real IDs consist of integers only. The pattern matches two integers followed by 07 followed by 6 integers and finally 01 or 11 Hope this helps, Ulrik On Mon, 5 Sep 2016 at 13:54 Rosa Oliveira <rosita21 at gmail.com> wrote:> Dear all, > > I have searched all over and didn?t found an answer :( Sorry, I'm new. > > I need urgently to "not analyse"the weight the ID's that have 07 in the > position 3 and 4 respectively, 01 or 11 in positions 11 and 12 of ID > variable. . > > I used the following code: > > base<--baseR[substr(baseR$'ID',3,4)!='03' > &substr(baseR$'ID',11,12)!='01' > &substr(baseR$'ID',11,12)!='11',] > > But, instead of removing just the id's that respect the 3 conditions > simultaneously, base don't have all the id's that have 03 in the 3 and 4 > positions os id variable, neither 01 in positions 11 and 12 of ID, > neither 11 > in positions 11 and 12 of ID variable.variable. > > So, it seems, that the code exclude all the conditions, as it was a OR (|) > condition in spite of AND (&) condition. > > Can anyone help me please? > > I attach the data. > > Best, > Rosa Oliveira > > __________________________________ > > Antes de imprimir este e-mail pense bem se tem mesmo que o fazer. > H? cada vez menos ?rvores. > N?o imprima, pense na sua responsabilidade e compromisso com o MEIO > AMBIENTE! > < > http://pt.dreamstime.com/cora-ccedil-atildeo-criado-das-folhas-de-aacutervores-diferentes-thumb12275776.jpg > > > < > http://pt.dreamstime.com/cora-ccedil-atildeo-criado-das-folhas-de-aacutervores-diferentes-thumb12275776.jpg > > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.[[alternative HTML version deleted]]