[R-br] Regexp no grep para linhas que não iniciam com sequência

Cesar Rabak cesar.rabak em gmail.com
Quarta Outubro 5 00:46:28 BRT 2016


Marcus,

De fato existe o PowerShell da Microsoft, mas ele não inclui a
funcionalidade dos comandos Unix like, como, por exemplo, o grep que o
Rafael usou.

No Windows 10 (IIUC somente no dez) você pode instalar o "ambiente bash"
que inclui em adição ao próprio bash, o grep, sed, awk (pelo menos segundo
a própria MS [v. site MSDN]).

Por ora essa opção é "beta" para o Windows, por isso YMMV...

HTH
--
Cesar Rabak

2016-10-04 18:35 GMT-03:00 Marcus Nunes via R-br <r-br em listas.c3sl.ufpr.br>:

> Rafael e demais,
>
> Se não me engano, a Microsoft liberou um programa chamado Powershell que
> tem diversas funcionalidades do bash. Este programa é gratuito e tem
> versões para Windows (não apenas 10), Mac e Linux.
>
> Em 4 de out de 2016 18:10, "Rafael Tieppo via R-br" <
> r-br em listas.c3sl.ufpr.br> escreveu:
>
>> Eder, tudo bem?
>> Tentando ajudar, caso tenha alguma máquina com linux, tenho a seguinte
>> sugestão.
>> obs.: parece que o update do windows 10 tem ou terá uma layer do shell do
>> linux
>>
>> test <- c("SPA100", "MSA200", "MSB300", "MSC400", "MSC500",
>>          "PRA100", "PRC200", "MGV100", "MTJ400", "MTK500")
>>
>> write.csv(test, "eder.csv", row.names = FALSE)
>>
>>
>> ## indo para o Shell
>>
>> grep -v "MS" < eder.csv
>>
>> ## para salvar em outro arquivo
>>
>> grep -v "MS" < eder.csv > eder2.csv
>>
>> cat eder2.csv
>>
>> espero ter ajudado
>> Saudações
>>
>> Rafael Tieppo
>> State University of Mato Grosso - Department of Agricultural Engineering
>> site: http://docente.unemat.br/rafaeltieppo/ *blog*:
>> https://fuidebicicleta.wordpress.com
>> "Evite o desperdício: antes de imprimir pense na sua responsabilidade com
>> o ambiente".
>>
>>
>> On Tuesday, October 4, 2016 11:00 AM, "r-br-request em listas.c3sl.ufpr.br"
>> <r-br-request em listas.c3sl.ufpr.br> wrote:
>>
>>
>> Enviar submissões para a lista de discussão R-br para
>>     r-br em listas.c3sl.ufpr.br
>>
>> Para se cadastrar ou descadastrar via WWW, visite o endereço
>>     https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> ou, via email, envie uma mensagem com a palavra 'help' no assunto ou
>> corpo da mensagem para
>>     r-br-request em listas.c3sl.ufpr.br
>>
>> Você poderá entrar em contato com a pessoa que gerencia a lista pelo
>> endereço
>>     r-br-owner em listas.c3sl.ufpr.br
>>
>> Quando responder, por favor edite sua linha Assunto assim ela será
>> mais específica que "Re: Contents of R-br digest..."
>>
>>
>> Tópicos de Hoje:
>>
>>   1. "alternativa não-paramétrica" para o teste de Dunnett
>>       (Luiz Leal)
>>   2. Re: Processamento paralelo para um modelo de treinamento
>>       (Tito Conte)
>>   3. Re: "alternativa não-paramétrica" para o teste de Dunnett
>>       (Tito Conte)
>>   4. Identificar variáveis dicotomicas (Elias Carvalho)
>>   5. Re: Identificar variáveis dicotomicas (Eduardo Junior)
>>   6. Re: Identificar variáveis dicotomicas (Felipe)
>>   7. Re: "alternativa não-paramétrica" para o teste de Dunnett
>>       (Luiz Henrique Leal)
>>   8. Regexp no grep para linhas que não iniciam com sequência
>>       (Éder Comunello)
>>   9. Re: Regexp no grep para linhas que não iniciam com
>>       sequência (Marcus Nunes)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Mon, 3 Oct 2016 16:24:09 +0000 (UTC)
>> From: Luiz Leal <richfield1974 em yahoo.com>
>> To: "r-br em listas.c3sl.ufpr.br" <r-br em listas.c3sl.ufpr.br>
>> Subject: [R-br] "alternativa não-paramétrica" para o teste de
>>     Dunnett
>> Message-ID: <318158849.4552633.1475511849793 em mail.yahoo.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Boa tarde a todos.Alguém sabe se existe uma "alternativa não-paramétrica"
>> para o teste de Dunnett?Desde já agradeçoLuiz
>>
>> ...Dunnett's test is a multiple comparison procedure to compare each of a
>> number of treatments with a single control.
>> ...
>> -------------- Próxima Parte ----------
>> Um anexo em HTML foi limpo...
>> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/201610
>> 03/2222ae8c/attachment-0001.html>
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Mon, 3 Oct 2016 17:37:36 -0300
>> From: Tito Conte <tito.conte em gmail.com>
>> To: Fernando Gama <f.fabiogama88 em gmail.com>,  a lista Brasileira
>>     oficial de discussão do programa R.  <r-br em listas.c3sl.ufpr.br>
>> Subject: Re: [R-br] Processamento paralelo para um modelo de
>>     treinamento
>> Message-ID:
>>     <CACqq46womHtn9eivqKSQG2K_SdSD9zuSF=9JQG82wWoJuJQAYQ em mail.gmail.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Ele está rodando paralelo? Você verificou?
>>
>> Se unix use o comando top e aperte 1
>> Se windows abra o gerenciador de tarefas e verifique os núcleos de
>> trabalho.
>>
>> Aproveite para ver se é a CPU do seu PC o problema. Pode ser a memória ou
>> a
>> escrita do disco.
>>
>> Uma solução de baixissimo nível, mas que funciona. é você quebrar o
>> código.
>> Em partes e rodar vários Rs, cada um com uma etapa, gerar uns arquivos
>> intermediários e depois concatena tudo.
>>
>>
>> Tito Conte
>>
>>
>> Em 2 de outubro de 2016 08:41, Fernando Gama via R-br <
>> r-br em listas.c3sl.ufpr.br> escreveu:
>>
>> > Pessoal,
>> >
>> > Estou tentando treinar um modelo com 192 atributos e meu objetivo é, no
>> > pós-treinamento, identificar os atributos mais importantes. (seleção de
>> > features).
>> >
>> > A questão é que estou tendo problemas para treinar o modelo porque o
>> > processamento é extremamente lento. Pesquisei sobre o parallel e o
>> > doParallel e coloquei no meu código mas aparentemente não obtive
>> resultados
>> > segue um trecho do código:
>> >
>> > library(caret)
>> > library(doParallel)
>> >
>> > myControl <- trainControl(method = "repeatedcv", number = 10, repeats =
>> 3,
>> > allowParallel = TRUE)
>> >
>> > t<-proc.time()
>> >
>> > cl <- makeCluster(detectCores())
>> >
>> > registerDoParallel(cl)
>> >
>> > model <- train(GENRE~., data=dtset_genres, method="lvq", preProcess =
>> > "scale", trControl = myControl)
>> >
>> > stopCluster(cl)
>> >
>> > proc.time()-t
>> >
>> >
>> > ​Alguma sugestão?​
>> >
>> > --
>> > Att,
>> >
>> > | Fernando Gama da Mata |
>> > | Database Specialist | Master's Degree UFPA |
>> >
>> > | Contacts: +55 91 99150 0365 | f.fabiogama88 em gmail.com | Social
>> > Networks: [ <https://www.facebook.com/fernando.gama.13>][
>> > <https://plus.google.com/+FernandoGama13>][
>> > <https://www.linkedin.com/in/fernandogama>] |
>> >
>> >
>> > _______________________________________________
>> > R-br mailing list
>> > R-br em listas.c3sl.ufpr.br
>> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> > código mínimo reproduzível.
>> >
>> -------------- Próxima Parte ----------
>> Um anexo em HTML foi limpo...
>> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/201610
>> 03/6d0dada5/attachment-0001.html>
>>
>> ------------------------------
>>
>> Message: 3
>> Date: Mon, 3 Oct 2016 17:38:38 -0300
>> From: Tito Conte <tito.conte em gmail.com>
>> To: Luiz Leal <richfield1974 em yahoo.com>,  a lista Brasileira oficial
>>     de discussão do programa R.  <r-br em listas.c3sl.ufpr.br>
>> Subject: Re: [R-br] "alternativa não-paramétrica" para o teste de
>>     Dunnett
>> Message-ID:
>>     <CACqq46zura6UmNb=YD0RG84RF4hucLL-MT2aRKQQC8aXVbqnsQ em mail.gmail.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Achei isso:
>>
>> "I'm pretty sure Dunnett's Test is for parametric data only. You can use
>> Mann Whitney follow up tests and just divide alpha by how many follow ups
>> you need to run to take a conservative approach."
>>
>> Tito Conte
>>
>>
>> 2016-10-03 13:24 GMT-03:00 Luiz Leal via R-br <r-br em listas.c3sl.ufpr.br>:
>>
>> > Boa tarde a todos.
>> > Alguém sabe se existe uma "alternativa não-paramétrica" para o teste de
>> > Dunnett?
>> > Desde já agradeço
>> > Luiz
>> >
>> > ...
>> > *Dunnett's test* is a multiple comparison
>> > <https://en.wikipedia.org/wiki/Multiple_comparisons> procedure to
>> compare
>> > each of a number of treatments with a single control.
>> > ...
>> >
>> > _______________________________________________
>> > R-br mailing list
>> > R-br em listas.c3sl.ufpr.br
>> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> > código mínimo reproduzível.
>> >
>> -------------- Próxima Parte ----------
>> Um anexo em HTML foi limpo...
>> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/201610
>> 03/1a2c2fb0/attachment-0001.html>
>>
>> ------------------------------
>>
>> Message: 4
>> Date: Mon, 3 Oct 2016 20:18:27 -0300
>> From: Elias Carvalho <ecacarva em gmail.com>
>> To: a lista Brasileira oficial de discussão do programa R.
>>     <r-br em listas.c3sl.ufpr.br>
>> Subject: [R-br] Identificar variáveis dicotomicas
>> Message-ID:
>>     <CAH8E6UvJE4FJdg3sqPSyEJuUy1QR45KEW0B3kTS4i6QUCyypEw em mail.gmail.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Boa noite pessoal
>>
>> Existe alguma função do R que permite identificar variáveis dicotomicas em
>> um dataframe ?
>>
>> Como por exemplo: 0 e 1 ou 1 e 2 no mesmo dataframe
>>
>> Obrigado
>>
>> --
>>
>>
>> *In Jesu et Maria*
>> *Obrigado*
>> *Prof. Elias Carvalho*
>> -------------- Próxima Parte ----------
>> Um anexo em HTML foi limpo...
>> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/201610
>> 03/4c256e4c/attachment-0001.html>
>>
>> ------------------------------
>>
>> Message: 5
>> Date: Mon, 3 Oct 2016 20:48:23 -0300
>> From: Eduardo Junior <edujrrib em gmail.com>
>> To: r-br em listas.c3sl.ufpr.br
>> Subject: Re: [R-br] Identificar variáveis dicotomicas
>> Message-ID:
>>     <CAO7eVPz+Nbop7a6e6=yvmMcT4ab2jJOp7KWQoHYvcbT_omCeDA em mail.gmail.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> As funções nativas.
>>
>> ## Mostra quantos valores unicos tem em cada coluna
>> sapply(dados, function(x) length(unique(x)))
>>
>> ## Os iguais a dois ...
>> sapply(dados, function(x) length(unique(x))) == 2L
>>
>> Att,
>> Eduardo E. R, Junior <http://jreduardo.github.io/>
>> -------------- Próxima Parte ----------
>> Um anexo em HTML foi limpo...
>> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/201610
>> 03/bf2f4bad/attachment-0001.html>
>>
>> ------------------------------
>>
>> Message: 6
>> Date: Mon, 3 Oct 2016 20:57:38 -0300
>> From: Felipe <felipe.e.barletta em gmail.com>
>> To: Elias Carvalho <ecacarva em gmail.com>, a lista Brasileira oficial de
>>     discussão do programa R.  <r-br em listas.c3sl.ufpr.br>
>> Subject: Re: [R-br] Identificar variáveis dicotomicas
>> Message-ID: <efd9e8d7-87a5-26cf-bca9-3bf1576561b0 em gmail.com>
>> Content-Type: text/plain; charset=utf-8; format=flowed
>>
>> Se as variáveis dicotômicas tiverem valores 0 ou 1, pode tentar da
>> seguinte maneira:
>>
>>
>> dados <- data.frame(x1=rbinom(100,1,.5),x2=rnorm(100))
>> sapply(dados, function(x) all(x%in%c(0,1)))
>>     x1    x2
>>   TRUE FALSE
>>
>>
>> ------------------------------
>>
>> Message: 7
>> Date: Mon, 03 Oct 2016 22:50:14 -0300
>> From: Luiz Henrique Leal <richfield1974 em yahoo.com>
>> To: Tito Conte <tito.conte em gmail.com>
>> Cc:     a lista Brasileira oficial de discussão do programa R.
>>     <r-br em listas.c3sl.ufpr.br>
>> Subject: Re: [R-br] "alternativa não-paramétrica" para o teste de
>>     Dunnett
>> Message-ID: <owgspse5irq36a1succbe6m8.1475545814367 em email.android.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Muito obrigado
>>
>> Conectado pela Motorola
>>
>> Tito Conte <tito.conte em gmail.com> escreveu:
>>
>> >Achei isso:
>> >
>> >"I'm pretty sure Dunnett's Test is for parametric data only. You can use
>> Mann Whitney follow up tests and just divide alpha by how many follow ups
>> you need to run to take a conservative approach."
>> >
>> >
>> >Tito Conte
>> >
>> >
>> >2016-10-03 13:24 GMT-03:00 Luiz Leal via R-br <r-br em listas.c3sl.ufpr.br
>> >:
>> >
>> >Boa tarde a todos.
>> >
>> >Alguém sabe se existe uma "alternativa não-paramétrica" para o teste de
>> Dunnett?
>> >
>> >Desde já agradeço
>> >
>> >Luiz
>> >
>> >
>> >...
>> >
>> >Dunnett's test is a multiple comparison procedure to compare each of a
>> number of treatments with a single control.
>> >
>> >...
>> >
>> >
>> >_______________________________________________
>> >R-br mailing list
>> >R-br em listas.c3sl.ufpr.br
>> >https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> >Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> código mínimo reproduzível.
>> >
>> >
>> -------------- Próxima Parte ----------
>> Um anexo em HTML foi limpo...
>> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/201610
>> 03/8ca1874d/attachment-0001.html>
>>
>> ------------------------------
>>
>> Message: 8
>> Date: Tue, 4 Oct 2016 08:49:15 -0400
>> From: Éder Comunello <comunello.eder em gmail.com>
>> To: "r-br em listas.c3sl.ufpr.br" <r-br em listas.c3sl.ufpr.br>
>> Subject: [R-br] Regexp no grep para linhas que não iniciam com
>>     sequência
>> Message-ID:
>>     <CABmC8gmXyf0Cv1movTQqUktHucnSUSd-rxLWv0CLDZLcG6aEcw em mail.gmail.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Senhores, bom dia!
>>
>> Considerando o vetor:
>>
>> test <- c("SPA100", "MSA200", "MSB300", "MSC400", "MSC500",
>>           "PRA100", "PRC200", "MGV100", "MTJ400", "MTK500")
>>
>> Posso obter facilmente os valores iniciados com a sequência "MS":
>> grep("^MS", test, val=T)
>>
>> # [1] "MSA200" "MSB300" "MSC400" "MSC500"
>>
>>
>> Uma primeira tentativa, sem sucesso, para obter linhas que não iniciam com
>> a sequência foi:
>> grep("^!(MS)", test, val=T)
>> # character(0)
>>
>> Consegui uma solução estranha com:
>> grep("^[^M]|^M[^S]", test, val=T)
>>
>> # [1] "SPA100" "PRA100" "PRC200" "MGV100" "MTJ400" "MTK500"
>>
>>
>> Mas essa solução é limitada quando usando strings maiores, tal como "MSC".
>>
>> Embora existam alternativas como:
>> test[-grep("^MSC", test)]
>>
>> # [1] "SPA100" "MSA200" "MSB300" "PRA100" "PRC200" "MGV100" "MTJ400"
>> "MTK500"
>>
>>
>> Gostaria de saber se há uma forma fácil de fazer isso usando diretamente
>> uma regexp.
>>
>> Grato,
>>
>> ================================================
>> Éder Comunello
>> Researcher at Brazilian Agricultural Research Corporation (Embrapa)
>> DSc in Agricultural Systems Engineering (USP/Esalq)
>> MSc in Environ. Sciences (UEM), Agronomist (UEM)
>> ---
>> Embrapa Agropecuária Oeste, Dourados, MS, Brazil |<O>|
>> ================================================
>> GEO, -22.2752, -54.8182, 408m
>> UTC-04:00 / DST: UTC-03:00
>> -------------- Próxima Parte ----------
>> Um anexo em HTML foi limpo...
>> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/201610
>> 04/ed7972df/attachment-0001.html>
>>
>> ------------------------------
>>
>> Message: 9
>> Date: Tue, 4 Oct 2016 10:14:36 -0300
>> From: Marcus Nunes <marcus.nunes em gmail.com>
>> To: comunello.eder em gmail.com,  a lista Brasileira oficial de
>>     discussão do programa R.  <r-br em listas.c3sl.ufpr.br>
>> Subject: Re: [R-br] Regexp no grep para linhas que não iniciam com
>>     sequência
>> Message-ID:
>>     <CA+QGQvvMACE6i_RA46nvpY-T34QS9hxZadhbNsaezwhXTg4SbQ em mail.gmail.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Se entendi corretamente o teu problema, não é necessário utilizar uma
>> regex:
>>
>> test <- c("SPA100", "MSA200", "MSB300", "MSC400", "MSC500", "PRA100",
>> "PRC200", "MGV100", "MTJ400", "MTK500")
>>
>> grep("MS", test, val=T, invert=T)
>>
>>
>>
>> 2016-10-04 9:49 GMT-03:00 Éder Comunello via R-br <
>> r-br em listas.c3sl.ufpr.br>
>> :
>>
>> > Senhores, bom dia!
>> >
>> > Considerando o vetor:
>> >
>> > test <- c("SPA100", "MSA200", "MSB300", "MSC400", "MSC500",
>> >          "PRA100", "PRC200", "MGV100", "MTJ400", "MTK500")
>> >
>> > Posso obter facilmente os valores iniciados com a sequência "MS":
>> > grep("^MS", test, val=T)
>> >
>> > # [1] "MSA200" "MSB300" "MSC400" "MSC500"
>> >
>> >
>> > Uma primeira tentativa, sem sucesso, para obter linhas que não iniciam
>> com
>> > a sequência foi:
>> > grep("^!(MS)", test, val=T)
>> > # character(0)
>> >
>> > Consegui uma solução estranha com:
>> > grep("^[^M]|^M[^S]", test, val=T)
>> >
>> > # [1] "SPA100" "PRA100" "PRC200" "MGV100" "MTJ400" "MTK500"
>> >
>> >
>> > Mas essa solução é limitada quando usando strings maiores, tal como
>> "MSC".
>> >
>> > Embora existam alternativas como:
>> > test[-grep("^MSC", test)]
>> >
>> > # [1] "SPA100" "MSA200" "MSB300" "PRA100" "PRC200" "MGV100" "MTJ400"
>> "MTK500"
>> >
>> >
>> > Gostaria de saber se há uma forma fácil de fazer isso usando diretamente
>> > uma regexp.
>> >
>> > Grato,
>> >
>> > ================================================
>> > Éder Comunello
>> > Researcher at Brazilian Agricultural Research Corporation (Embrapa)
>> > DSc in Agricultural Systems Engineering (USP/Esalq)
>> > MSc in Environ. Sciences (UEM), Agronomist (UEM)
>> > ---
>> > Embrapa Agropecuária Oeste, Dourados, MS, Brazil |<O>|
>> > ================================================
>> > GEO, -22.2752, -54.8182, 408m
>> > UTC-04:00 / DST: UTC-03:00
>> >
>> >
>> >
>> >
>> > _______________________________________________
>> > R-br mailing list
>> > R-br em listas.c3sl.ufpr.br
>> > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> > código mínimo reproduzível.
>> >
>>
>>
>>
>> --
>> Marcus Nunes
>> http://marcusnunes.me/
>> -------------- Próxima Parte ----------
>> Um anexo em HTML foi limpo...
>> URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/201610
>> 04/585080f4/attachment-0001.html>
>>
>> ------------------------------
>>
>> Subject: Legenda do Digest
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>>
>>
>> ------------------------------
>>
>> Fim da Digest R-br, volume 70, assunto 6
>> ****************************************
>>
>>
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> código mínimo reproduzível.
>>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20161005/5c50619f/attachment-0001.html>


Mais detalhes sobre a lista de discussão R-br