2013-01-11 8 views

Antwort

11
> which(someVector %% 2 == 1) 
[1] 1 2 5 6 8 
6
library(schoolmath) 
which(is.odd(someVector)) 
[1] 1 2 5 6 8 
aussehen würde

nur zum Spaß hier der Code der is.odd Funktion:

function (x) 
{ 
    start <- 1 
    end <- length(x) + 1 
    while (start < end) { 
    y <- x[start] 
    if (y == 0) { 
     cat("Please enter a number > 0") 
     end 
    } 
    test1 <- y/2 
    test2 <- floor(test1) 
    if (test1 != test2) { 
     if (start == 1) { 
     result = TRUE 
     } 
     else { 
     result <- c(result, TRUE) 
     } 
    } 
    else { 
     if (start == 1) { 
     result = FALSE 
     } 
     else { 
     result <- c(result, FALSE) 
     } 
    } 
    start <- start + 1 
    } 
    return(result) 
} 

Auf jeden Fall, Sie diese Funktion nicht nutzen!

+2

Wow! Es gibt eine Menge Code in dieser 'is.odd'-Funktion. Warum ist das besser als 'is.odd <- function (x) x %% 2 == 1'? ... Sieht auch so aus, als würde es einen Vektor in einer while-Schleife wachsen lassen (auch wenn die Funktion die Länge der Ausgabe bereits kennt) – GSee

+0

@Gee du hast recht, ich habe das auch gesehen Ich hoffe ich werde es tun nicht dwonvoted für diese dumme Funktion :) – agstudy

+1

Schau, wie hässlich das ist: 'suppressMessages (is.odd (c (0, 2, 0, 1, 0))). Frage mich, warum der Autor nicht akzeptiert, dass 0 gerade ist. http://en.wikipedia.org/wiki/Parity_of_zero – GSee

Verwandte Themen