Как переставить ячейки в строке на основе частичных совпадений строк в Excel, R

У меня есть большая таблица Excel с 8 столбцами. Упрощенно это выглядит так:

Identity column1  column2  column3  column4  column5  column6  column7
     1     tk=tr   cont=fb  sourc=a  camp=b    med=c    nm=he   ad=fst
     2     camp=a  cont=fb  sourc=a   med=b     NA        NA     NA
     3     vid=tr  sourc=b  camp=b    med=c   cont=fb     NA     NA

Мне нужно организовать это так, чтобы все клетки, содержащие cont находятся в одном столбце, все ячейки, содержащие camp находятся в одной колонке и так далее. Хотя это только частичные совпадения, как вы можете видеть, некоторые говорят camp=bи некоторые говорят camp=a, например. Мне нужно, чтобы в каждом столбце был только один тип строки, один для contодин для sourcодин для campодин для med,

Столбец "личность" отформатирован правильно, а trk а также vid значения не нужны, но они появляются только в некоторых строках.

Я посмотрел на условное форматирование, расширенные фильтры и сортировки, упорядочение по пользовательским спискам и vba все для Excel. Я счастлив преобразовать в файл R и работать там.

Я хотел бы, чтобы результат выглядел так:

Identity  column1  column2  column3  column4  column5  column6  Column7
   1       cont=fb  sourc=a  camp=b    med=c    NA        NA       NA
   2       cont=fb  sourc=a  camp=a    med=b    NA        NA       NA
   3       cont=fb  sourc=b  camp=b    med=c    NA        NA       NA

Значения cont=, sourc=, camp= и med= - единственные, которые мне нужны в конечном продукте, поэтому было бы замечательно, если бы я мог игнорировать / удалять другие при создании этого, однако это не совсем необходимо.

Большое спасибо за любую помощь, которую вы можете предложить!

1 ответ

Решение

То, что вы хотите, может быть сделано с INDEX/MATCH

Используйте следующую формулу в каждом из четырех столбцов:

=INDEX(B2:H2,MATCH("cont=*",B2:H2,))

=INDEX(B2:H2,MATCH("sourc=*",B2:H2,))

=INDEX(B2:H2,MATCH("camp=*",B2:H2,))

=INDEX(B2:H2,MATCH("med=*",B2:H2,))

И заселить

Другие вопросы по тегам