R scorrere le colonne dataframe

Voglio applicare le statistiche e le colonne di un dataframe in iterato moda:

colonne numero 1: “A” rappresenta il tag che voglio discriminare:

for (i in names(dataframe)) {
    i <- as.name(i)
    group1 <- i[A=="locationX"]
    group2 <- i[A!="locationX"]
    p <- wilcox.test(group1,group2,na.action(na.omit))$p.value
}

tuttavia, il as.name() è quello di cercare di rimuovere le virgolette dalla colonna nomi generati dal names(dataframe).

Purtroppo mi dà l’errore:

Errore in[A == “locationX”] :
oggetto di tipo ‘simbolo’ non è subsettable

Penso as.name() non è il modo giusto per farlo.

Eventuali indizi?

potete per favore dare un esempio A, e anche, forse, head(dataframe) (che solo ci dà un’occhiata al vostro dataframe)?

InformationsquelleAutor user1155073 | 2012-01-18

One Reply
  1. 9

    Il solo modo in cui questo ha senso se per “a” per essere un vettore con più istanze di “locationX” e più istanza di converse e per la lunghezza di “a” per essere lo stesso come il numero di righe in “dataframe”. Se questo è il caso, qualcosa di simile potrebbe funzionare:

    p <- list()
    for (i in names(dataframe)) {
       # using as.names not needed and possibly harmful
        group1 <- dataframe[[i]][A == "locationX"]
        group2 <- dataframe[[i]][A != "locationX"]
        p[i] <- wilcox.test(group1,group2,na.action(na.omit))$p.value
    }

    Nota che anche se non si ottiene un errore con il codice che ti è ancora sovrascrivere la “p” ogni volta che attraverso il ciclo.

    InformationsquelleAutor 42-

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *