Novos aprimoramentos bacanas para descompactar / para

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


[Esteartigofoipublicadopelaprimeiravezem[Thisarticlewasfirstpublishedon R – Blog de vetor de vitória, 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.

Temos algumas melhorias realmente bacanas para serem descompactadas.

Uma das novas notações é o uso de := como um operador de atribuição alternativo para descompactar / para.

Isso nos permite escrever código como o seguinte.

Primeiro, vamos anexar nosso pacote e configurar alguns dados de exemplo.

library(wrapr)  # attach package
packageVersion("wrapr")  # confirm we have at least version 2.0.0
#> [1] ‘2.0.0’

# example data
d 

base::split() is a very handy function for splitting a data frame into smaller data frames by group. For example:

print(split(d, d$group))

#> $calibrate
#>   x     group
#> 2 2 calibrate
#> 5 5 calibrate
#> 8 8 calibrate
#> 
#> $test
#>   x group
#> 3 3  test
#> 6 6  test
#> 9 9  test
#> 
#> $train
#>   x group
#> 1 1 train
#> 4 4 train
#> 7 7 train

Muitas vezes, queremos que esse quadro de dados dividido esteja em nosso ambiente de trabalho, em vez de ficar preso em uma lista. A maneira usual de conseguir isso seria armazenar a lista dividida em uma variável temporária e depois atribuir elementos da lista ao nosso ambiente, um de cada vez. Isso não é um problema, mas também não é tão elegante quanto o seguinte.

# assign split data into environment
unpack[
  traind = train, 
  testd = test, 
  cald = calibrate
  ] := split(d, d$group)

Após esta etapa, nosso ambiente possui três quadros de dados divididos, usando os nomes de nossa escolha. Por exemplo, temos:

knitr::kable(traind)
11trem
44trem
77trem

Observe que não precisamos introduzir uma variável temporária para manter a lista de divisões. Isso não é algo imenso, mas documenta de maneira mais clara a intenção. É uma coisa pequena, mas ser elegante nas pequenas coisas pode nos ajudar a alcançar a elegância em grandes projetos.

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

unpack e to foi projetado para ter uma notação muito regular e versátil. Se preferirmos, podemos usar setas para especificar as atribuições.

# assign split data into environment
unpack[
  traind 

Or we can use a pipe to assign to the right.

split(d, d$group) %.>% 
  unpack[
    traind 

And unpack can be also used in a more traditional non-operator notation as follows.

unpack(
  split(d, d$group),
  traind 

An interesting side-note is how similar the above form is to the following.

with(
  split(d, d$group),
  {
    traind 

Though we prefer not using .

All of the above is covered in detail in the vignettes (here and here), and documentation (here and here). We also have some notes on managing workspaces with these methods plus here, and using unpack with functions that return named lists (such as those in vtreat) here.

To try these notations variations out before they are pushed to the CRAN version of wrapr, please try installing the development version of the package from GitHub as follows. (The CRAN version of wrapr already has most of the above features, but it doesn’t use := for the right to left outside assignment step yet (though := can already be used for specifying the interior mapping assignments).)

remotes::install_github("WinVector/wrapr")
packageVersion("wrapr")
#> [1] ‘2.0.0’



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
Leia Também  # 26: Atualizando para o R 4.0.0