2015-09-11 1 views
1

Я использую данные Бюро переписи, в котором представлены оценки и поля ошибки. Он загружен как Файловые Excel со следующими именами столбцов:Удаление столбцов с общей фразой внутри каждого имени, используя R

HC01_EST_VC01 
HC01_MOE_VC01 
HC02_EST_VC01 
HC02_MOE_VC01 
HC03_EST_VC01 
HC03_MOE_VC01 
HC01_EST_VC03 
HC01_MOE_VC03 
etc. 

После того, как я прочитал таблицу в R (используя read.csv), как я могу затем падение/удалить запас-из-ошибок столбцов (например, HC01_MOE_VC01, HC02_MOE_VC01)? Я прочитал о том, чтобы удалить столбцы с общими начальными фрагментами, но не общими внутри фрагментами.

Буду признателен за предложения. Благодаря!

ответ

3

Мы можем использовать grep для подмножества столбцов, которые не являются «MOE». Выходной сигнал grepl является логическим вектором. Мы получаем ИСТИННЫЕ значения, соответствующие тем подстрокам, которые соответствуют шаблону _MOE_ и FALSE для отсутствия соответствия. Мы отрицаем (!) так, чтобы TRUE становился FALSE и FALSE равным TRUE, так что все имена столбцов, у которых нет _MOE_, являются TRUE. Это можно использовать для подмножества столбцов.

df1[!grepl('_MOE_', names(df1))] 
Смежные вопросы