Mam plik data.frame o nazwie „abcframe”
a b c
1 1 1
2 2 3
Jak mogę sprawdzić, czy kolumna istnieje, czy nie w danej ramce danych? Na przykład chciałbym sprawdzić, czy kolumna d istnieje w abcframe data.frame .
Mam plik data.frame o nazwie „abcframe”
a b c
1 1 1
2 2 3
Jak mogę sprawdzić, czy kolumna istnieje, czy nie w danej ramce danych? Na przykład chciałbym sprawdzić, czy kolumna d istnieje w abcframe data.frame .
Odpowiedzi:
Zakładając, że nazwa twojej ramki danych to dat
i że nazwa twojej kolumny do sprawdzenia to "d"
, możesz użyć %in%
operatora:
if("d" %in% colnames(dat))
{
cat("Yep, it's in there!\n");
}
!
na początku:if(!"d"%in% colnames(dat))
if("d" & "e" & "f" %in% colnames(dat)) { cat("Yep, it's in there!\n"); }
. Dzięki! - Och, sam mogłem znaleźć odpowiedź: stackoverflow.com/questions/21770912/… .
Masz kilka opcji, w tym używanie %in%
i 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
Aby uzyskać nazwy kolumn:
names(dat)
[1] "a" "b" "c"
Użyj, %in%
aby sprawdzić członkostwo:
"d" %in% names(dat)
[1] FALSE
Or use `grepl` to check for a match:
grepl("d", names(dat))
[1] FALSE FALSE FALSE
grepl
nieco dokładniejsze informacje, możesz użyć grepl("^d$",names(dat))
, aby upewnić się, że kolumna o nazwie dd
nie zwraca TRUE
.
colnames
nie działa dla mnie, ale names
tak.
Możesz użyć any
:
> names(dat)
[1] "a" "b" "c"
> any(names(dat) == 'b')
[1] TRUE
> any(names(dat) == 'B')
[1] FALSE
Możesz również użyć if(!is.null(abcframe$d))
do sprawdzenia, czy d
istnieje w 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
, czy chcesz wiedzieć, czy dany wektord
jest równy jednej z kolumn ramki danych?