foreach 1.5.0 agora disponível no CRAN

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


[Esteartigofoipublicadopelaprimeiravezem[Thisarticlewasfirstpublishedon Revoluções, e gentilmente contribuiu para os R-blogueiros]. (Você pode relatar um problema sobre o conteúdo desta página aqui)


Deseja compartilhar seu conteúdo com R-blogueiros? clique aqui se você tiver um blog ou aqui se não tiver.

Este post é para anunciar que a versão 1.5.0 do pacote foreach está agora no CRAN. Foreach é um idioma que permite a iteração de elementos em uma coleção, sem o uso de um contador de loop explícito. O pacote foreach agora tem mais de 10 anos e é usado por quase 700 pacotes no CRAN e no Bioconductor. (Se você estiver interessado em uma visão geral do pacote foreach e de sua história, vale a pena assistir à palestra sobre RStudio :: conf de Bryan Lewis.)

A principal mudança é a 1.5.0, que visa ajudar a reduzir erros associados à modificação de variáveis ​​globais. Agora, %dopar% loops com um back-end seqüencial avaliarão o corpo do loop dentro de um ambiente local. Por que fazer essa mudança? Vamos ilustrar com um exemplo:

library(foreach)
registerDoSEQ()

a 0
foreach(i=1:10) %dopar% {a 1}
a

Aqui, a tarefa dentro do %dopar% é para um local cópia de a, então a variável global a permanece inalterado. O motivo dessa mudança é porque %dopar% destina-se ao uso em um contexto paralelo, onde a modificação do ambiente global não faz sentido: o trabalho ocorrerá em diferentes processos de R, às vezes em diferentes máquinas físicas, possivelmente na nuvem. Nesse contexto, não há ambiente global compartilhado para manipular, ao contrário do caso de um back-end seqüencial.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Por isso, quase sempre é um erro modificar variáveis ​​globais de %dopar%, mesmo se costumava ter sucesso. Espera-se que essa mudança reduza a incidência de erros de programação em que as pessoas prototipam seu código com um back-end sequencial, apenas para que ele falhe quando o usarem com um back-end real (paralelo).

Leia Também  Ciência de dados na manufatura: uma visão geral

Observe que o comportamento do %do% O operador, destinado a um back-end sequencial, permanece o mesmo. Corresponde ao de um regular for ciclo:

a 0
foreach(i=1:10) %do% {a 1}
a

Se você tiver alguma dúvida ou comentário, envie-me um email ou abra um problema no repositório do GitHub.



Se você chegou até aqui, por que não inscreva-se para atualizações do site? Escolha seu sabor: e-mail, Twitter, RSS ou facebook …



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br