Ho un data.frame con il nome "abcframe"
a b c
1 1 1
2 2 3
Come posso scoprire se una colonna esiste o meno in un dato frame di dati? Ad esempio, vorrei scoprire se esiste una colonna d nel data.frame abcframe .
Ho un data.frame con il nome "abcframe"
a b c
1 1 1
2 2 3
Come posso scoprire se una colonna esiste o meno in un dato frame di dati? Ad esempio, vorrei scoprire se esiste una colonna d nel data.frame abcframe .
Risposte:
Supponendo che il nome del tuo data frame sia dat
e che il nome della tua colonna da controllare sia "d"
, puoi usare l' %in%
operatore:
if("d" %in% colnames(dat))
{
cat("Yep, it's in there!\n");
}
!
all'inizio:if(!"d"%in% colnames(dat))
if("d" & "e" & "f" %in% colnames(dat)) { cat("Yep, it's in there!\n"); }
. Grazie! - Oh, potrei aver trovato la risposta da solo: stackoverflow.com/questions/21770912/… .
Hai una serie di opzioni, incluso l'utilizzo %in%
e grepl
:
dat <- data.frame(a=1:2, b=2:3, c=4:5)
dat
a b c
1 1 2 4
2 2 3 5
Per ottenere i nomi delle colonne:
names(dat)
[1] "a" "b" "c"
Utilizzare %in%
per verificare l'appartenenza:
"d" %in% names(dat)
[1] FALSE
Or use `grepl` to check for a match:
grepl("d", names(dat))
[1] FALSE FALSE FALSE
grepl
un po 'più preciso, potresti usare grepl("^d$",names(dat))
, per assicurarti che una colonna con il nome dd
non ritorni TRUE
.
colnames
non ha funzionato per me ma names
ha funzionato.
Potresti usare any
:
> names(dat)
[1] "a" "b" "c"
> any(names(dat) == 'b')
[1] TRUE
> any(names(dat) == 'B')
[1] FALSE
Puoi anche usare if(!is.null(abcframe$d))
per verificare se d
esiste in abcframe
.
dat <- data.frame(a = 1:2, b = 2:3, c = 4:5)
if (!is.null(dat$d)) {
print("d exists")
} else {
print("d does not exist")
}
if (!is.null(dat$a)) {
print("a exists")
} else {
print("a does not exist")
}
d
, o vuoi sapere se un dato vettore èd
uguale a una delle colonne del tuo data frame?