Вы хотите знать, есть ли в вашем фрейме данных столбец с именем d, или вы хотите знать, dравен ли данный вектор одному из столбцов вашего фрейма данных?
Я хочу знать, есть ли в кадре данных облако с именем d или нет
Санни Санни,
Желаем вам приятного солнечного дня с 100 голосами! :-)
TMS
Ответы:
197
Предполагая, что имя вашего фрейма данных datи что имя столбца для проверки - это "d", вы можете использовать %in%оператор:
if("d"%in% colnames(dat)){
cat("Yep, it's in there!\n");}
если вы смотрите в обратном порядке, то есть если столбца нет, просто добавьте !в начале:if(!"d"%in% colnames(dat))
toto_tico
Отличный ответ. Как мне расширить это, если я буду искать столбцы «d», «e» и «f»? Будет ли это: if("d" & "e" & "f" %in% colnames(dat)) { cat("Yep, it's in there!\n"); }. Спасибо! - О, возможно, я сам нашел ответ: stackoverflow.com/questions/21770912/… .
Sander W. van der Laan
6
all (c ("d", "e", "f")% в% colnames (dat))
skan
24
У вас есть несколько вариантов, включая использование %in%и grepl:
dat <- data.frame(a=1:2, b=2:3, c=4:5)
dat
a b c
11242235
Чтобы получить имена столбцов:
names(dat)[1]"a""b""c"
Используйте %in%для проверки членства:
"d"%in% names(dat)[1]FALSE
Or use `grepl` to check for a match:
grepl("d", names(dat))[1]FALSEFALSEFALSE
Чтобы получить greplболее точную информацию, вы можете использовать grepl("^d$",names(dat)), чтобы гарантировать, что столбец с именем ddне возвращается TRUE.
BenBarnes
Спасибо за это, colnamesу меня не сработало, но сработало names.
Docconcoct
@Andrie есть ли способ сравнить столбцы с двумя большими фреймами данных, чтобы увидеть, какие имена столбцов отсутствуют в другом столбце?
Вы также можете использовать, if(!is.null(abcframe$d))чтобы проверить, dсуществует ли в 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
, или вы хотите знать,d
равен ли данный вектор одному из столбцов вашего фрейма данных?Ответы:
Предполагая, что имя вашего фрейма данных
dat
и что имя столбца для проверки - это"d"
, вы можете использовать%in%
оператор:источник
!
в начале:if(!"d"%in% colnames(dat))
if("d" & "e" & "f" %in% colnames(dat)) { cat("Yep, it's in there!\n"); }
. Спасибо! - О, возможно, я сам нашел ответ: stackoverflow.com/questions/21770912/… .У вас есть несколько вариантов, включая использование
%in%
иgrepl
:Чтобы получить имена столбцов:
Используйте
%in%
для проверки членства:источник
grepl
более точную информацию, вы можете использоватьgrepl("^d$",names(dat))
, чтобы гарантировать, что столбец с именемdd
не возвращаетсяTRUE
.colnames
у меня не сработало, но сработалоnames
.Вы можете использовать
any
:источник
Вы также можете использовать,
if(!is.null(abcframe$d))
чтобы проверить,d
существует ли вabcframe
.источник