Aby sprawdzić, czy kolumna istnieje w ramce danych, czy nie
110
Mam plik data.frame o nazwie „abcframe”
a b c
111223
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 .
jeśli szukasz odwrotności, tj. jeśli kolumny nie ma, po prostu dodaj !na początku:if(!"d"%in% colnames(dat))
toto_tico
Świetna odpowiedź. Jak to rozszerzyć, jeśli szukałbym kolumn „d”, „e” i „f”? Byłoby to: 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/… .
Sander W. van der Laan
6
all (c ("d", "e", "f")% w% colnames (dat))
skan
24
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
11242235
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]FALSEFALSEFALSE
Możesz również użyć if(!is.null(abcframe$d))do sprawdzenia, czy distnieje 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?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:źródło
!
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%
igrepl
:Aby uzyskać nazwy kolumn:
Użyj,
%in%
aby sprawdzić członkostwo:źródło
grepl
nieco dokładniejsze informacje, możesz użyćgrepl("^d$",names(dat))
, aby upewnić się, że kolumna o nazwiedd
nie zwracaTRUE
.colnames
nie działa dla mnie, alenames
tak.Możesz użyć
any
:źródło
Możesz również użyć
if(!is.null(abcframe$d))
do sprawdzenia, czyd
istnieje wabcframe
.źródło