Como preservar o attr da matriz?

queria fazer um recorte de uma matriz e mesmo assim preservar os attrs. Teria um jeito sem ter que fazer backup pra depois recolocar attr na mão?

matriz <- matrix(1:6, 2)
attr(matriz, "opa") <- "aloalo"
matriz # attr tá aqui
#>      [,1] [,2] [,3]
#> [1,]    1    3    5
#> [2,]    2    4    6
#> attr(,"opa")
#> [1] "aloalo"
matriz[1:2, 1:2, drop = FALSE] # attr se foi
#>      [,1] [,2]
#> [1,]    1    3
#> [2,]    2    4

Created on 2021-01-24 by the reprex package (v0.3.0)

Acho que não tem como preservar o seu attr customizado :frowning_face: De acordo com o Advanced R:

Attributes should generally be thought of as ephemeral. For example, most attributes are lost by most operations.

Em português:

Atributos normalmente deveriam ser considerados efêmeros. Por exemplo, a maior parte dos atributos é perdida na maioria das operações.

1 curtida