2013-07-29 2 views
0

В настоящее время у меня есть df, который я перегонял и реорганизовал с помощью пакета reshape2. Мой новый ДФ теперь содержит несколько столбцов, которые имеют имена, которые разграничено «_», например, так:Разделение заголовка столбца по разделителю в R

Location Type Time DO_ResultValue ENT_ResultValue TEMP_WATER_ResultValue 
CHE008  Out 7:58 3.19 mg/l  <10 MPN/100ml  13 deg C 
CHEFENCO Out 6:53 8.54 mg/l  34 MPN/100ml  12.7 deg C 
REVx2  In  7:19 6.72 mg/l  127 MPN/100ml  13.6 deg C 

«_ResultValue» в результате, когда я растаял мой ФР и затем отливал переменные внутри «ResultValue» в своем собственном колонны. Также обратите внимание, что в TEMP_WATER уже есть один разделитель. Результат, который я ищу, есть.

Location Type Time DO    ENT    TEMP_WATER 
CHE008  Out 7:58 3.19 mg/l  <10 MPN/100ml  13 deg C 
CHEFENCO Out 6:53 8.54 mg/l  34 MPN/100ml  12.7 deg C 
REVx2  In  7:19 6.72 mg/l  127 MPN/100ml  13.6 deg C 

мне нужно удалить «_ResultValue» из заголовков, так что я могу соответствовать заголовкам со списком пользовательского ввода необходимых заголовков и изменять порядок столбцов для создания выходного стола. Поэтому я не могу использовать какую-то функцию colnames() и переименовывать их вручную. B/c их имена будут меняться при каждом запуске кода на основе пользовательских входов.

Помощь очень ценится! Благодаря!

ответ

0

Просто используйте sub работать на names() значений. Он пропустит строки, которые не имеют этого расширения:

names(dfrm) <- sub("_ResultValue", "", names(dfrm)) 
+0

Спасибо, DWin, это сработало и было очень компактным! – Rnoob

3

Эти две функции могут помочь вам.

> unlist(strsplit(x, "_ResultValue")) 
[1] "Location" "Type"  "Time"  "DO"   "ENT"  "TEMP_WATER" 
> gsub("_ResultValue", "", x) 
[1] "Location" "Type"  "Time"  "DO"   "ENT"  "TEMP_WATER" 
+0

Спасибо, @RomanLustrik за быстрый ответ! Я обнаружил, что это сработало хорошо, и это был настраиваемый код для других целей. – Rnoob