R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

%nin%

Monesti R-koodissa esiintyy operaattori %in%, joka palauttaa boolean vektorin kahden vektorin vastaavuuksista. Usein tarvitsee palauttaa käänteinen tilanne, josta tässä esimerkki:

a <- 1:5
b <- 3:5
which(a %in% b)
"%nin%" <- function(x, y) !(x %in% y)
which(a %nin% b)

ja ajettuna

> a <- 1:5
> b <- 3:5
> which(a %in% b)
[1] 3 4 5
> "%nin%" <- function(x, y) !(x %in% y)
> which(a %nin% b)
[1] 1 2
>

2 Responses to “%nin%”

  • Jarno Tuimala kirjoitti:

    Pähkäilin samaa asiaa erästä luentoa varten, ja päädyin esittämään sen näin:

    which(a %in% b)
    [1] 3 4 5
    > which(!a %in% b)
    [1] 1 2
    

    Monesti saman asian voikin tehdä usealla eri tavalla. Funktiossa on tietty se hyvä puoli, ettei tarvitse muistaa tuota ! (not) -operaattoria.

  • Lauri Nikkinen kirjoitti:

    Jep, tuon funktion kun laittaa .RProfile tiedostoon, niin se on aina käytettävissä!


Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *