Как переставить ячейки в строке на основе частичных совпадений строк в 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,))
И заселить