Thursday 14 March 2024

R - kod po węgiersku

Takie coś mie wpadło - dla rybołowów - popełnione przez Francuzów:

MetricCompute <- function(faun, guild, labels, type, Tol = 1e-7){
    # ...
    f2 <- function(x,tol) ifelse(abs(x) < tol & !is.na(x), 0, x)
    w <- as.data.frame(apply(w, 2, function(x, y = Tol) f2(x, tol = y)))
    # ...
    return(w)
}

Definiowanie funkcji wewnątrz funkcji - pysznie, choć zastosowana jest aż 1 raz. Domyślam się, że as... to jakiś cast, a apply - transformacja. Za chuja nie wiem, co znaczy to 2, tj. do czego służy, no więc do dokumentacji:

apply(X, MARGIN, FUN, …)

Arguments

X an array, including a matrix. 

MARGIN a vector giving the subscripts which the function will be applied over. E.g., for a matrix 1 indicates rows, 2 indicates columns, c(1, 2) indicates rows and columns. Where X has named dimnames, it can be a character vector selecting dimension names.

Kurwa, co za odkorowańcy zestaw indeksów nazywają MARGIN? Aha, pewno płodziciele i szczęśliwi rodzice tego potworka. Ożeż ja pierdolę. Obfiuskejszyn baj dizajn. Opisu X już nie komentuję.

Moja wersja, chyba mniej przekompinowana*.

MetricCompute <- function(faun, guild, labels, type, Tol = 1e-7){
    # ...

    wtransformed = apply(w, 2, function(x) ifelse(abs(x) < Tol & !is.na(x), 0, x))
    w <- as.data.frame(wtransformed)
    # ...
    return(w)
}

No i niestety działa. Czyli trza napierdalać dalij**.

* przypisywane poczciwinie Wałkowi, zwanemu przez styropiańców czy popaprańców i etos Lechem. On niski wincy, a do fotografii miał z kimś stanąć i czy to na palce się podnosił, czy za taboretem rozglądał, mówiąc coś w rodzaju "znowu muszem kompinować".

** i dalij - K. Materna jako prowadzący teleturniej "Róg obfitości".

No comments:

Post a Comment