Вставка столбца с определенными символами другого существующего столбца с использованием substr () и regexp () Не получается желаемый результат - PullRequest
0 голосов
/ 07 июня 2019

Ниже приведены мои данные в csv, и я хочу вставить столбец с именем «sband» со значениями 2300-c1 для 2300-c1 (столбца обслуживающей полосы), 2300-c2 для 2300-c2-XNDB (обслуживающегостолбец полосы), 850-c1 для 850-c1-Bisector (столбца полосы обслуживания) и т. д.

Ввод: -

sidentity, диапазон выборки диапазона обслуживания, больше10 6278 (альфа) 2300-c1 34077 0 6278 (бета) 2300-c1 14656 50 6278 (гамма) 2300-c1 25172 0 6278 (альфа) 2300-c2 13523 0 6278 (бета) 2300-c2 7187 0 6278 (гамма) 2300-c2 11107 2 6278(epsillion) 2300-c1-XNDB 31181 0 6278 (epsillion) 2300-c2-XNDB 15165 0 6278 (альфа) 1800-c1 10196 0 6278 (бета) 1800-c1 6302 0 6278 (гамма) 1800-c1 11829 4 6278 (альфа) 850-c1 23250 4 6278 (бета) 850-c1 10033 0 6278 (гамма) 850-c1 53181 467 6278 (гамма) 850-c1-Bisector 19870 2258

я пробовал это "temp1 <-temp1 [, sband: = substr (<code>serving-band, 1, regexpr ("\ -", serving-band) [1] +2)] ", но мой вывод не подходит точно для 15-й строки.

Вывод: sountity обслуживающей полосы10 sband 1: 6278 (альфа) 2300-c1 34077 0 2300-c1 2: 6278 (бета) 2300-c1 14656 50 2300-c1 3: 6278 (гамма) 2300-c1 25172 0 2300-c1 4: 6278 (альфа)2300-c2 13523 0 2300-c2 5: 6278 (бета) 2300-c2 7187 0 2300-c2 6: 6278 (гамма) 2300-c2 11107 2 2300-c2 7: 6278 (бета) 2300-c1-XNDB 31181 0 2300-c1 8: 6278 (бета) 2300-c2-XNDB 15165 0 2300-c2 9: 6278 (альфа) 1800-c1 10196 0 1800-c1 10: 6278 (бета) 1800-c1 6302 0 1800-c1 11: 6278 (гамма) 1800-с1 11829 4 1800-с1 12: 6278 (альфа) 850-с1 23250 4 850-с1 13: 6278 (бета) 850-с1 10033 0 850-с1 14: 6278 (гамма) 850-с1 53181 467 850-c1 15: 6278 (гамма) 850-c1-бисектор 19870 2258 850-c1-

temp1 <-temp1 [, sband: = substr (<code>serving-band, 1, regexpr ("\ -", *)1014 *) [1] +2)]

temp1 <-temp1 [, sband: = substr (<code>serving-band, 1, (regexpr ("c", serving-band) [[1]] +1))]

Ожидаемый результат:

  sidentity    serving-band samplecount samplemorethan10   sband

1: 6278 (альфа) 2300-c1 34077 0 2300-c1 2: 6278 (бета) 2300-c1 14656 50 2300-c13: 6278 (гамма) 2300-с1 25172 0 2300-с1 4: 6278 (альфа) 2300-с2 13523 0 2300-с2 5: 6278 (бета) 2300-с2 7187 02300-c2 6: 6278 (гамма) 2300-c2 11107 2 2300-c2 7: 6278 (бета) 2300-c1-XNDB 31181 0 2300-c1 8: 6278 (бета) 2300-c2-XNDB 15165 0 2300-c1 9: 6278 (альфа) 1800-с1 10196 0 1800-с1 10: 6278 (бета) 1800-с1 6302 0 1800-с1 11: 6278 (гамма) 1800-с1 11829 4 1800-с1 12: 6278 (альфа) 850-с123250 4 850-c1 13: 6278 (бета) 850-c1 10033 0 850-c1 14: 6278 (гамма) 850-c1 53181 467 850-c1 15: 6278 (гамма) 850-c1-бисектор 19870 2258 850-c1

Фактические результаты:

  sidentity    serving-band samplecount samplemorethan10   sband

1: 6278 (альфа) 2300-c1 34077 0 2300-c1 2: 6278 (бета) 2300-c1 14656 50 2300-c1 3: 6278 (гамма) 2300-c1 25172 0 2300-c1 4:6278 (альфа) 2300-c2 13523 0 2300-c2 5: 6278 (бета) 2300-c2 7187 0 2300-c2 6: 6278 (гамма) 2300-c2 11107 2 2300-c2 7: 6278 (бета) 2300-c1-XNDB 31181 0 2300-c1 8: 6278 (бета) 2300-c2-XNDB 15165 0 2300-c2 9: 6278 (альфа) 1800-c1 10196 0 1800-c1 10: 6278 (бета) 1800-c1 6302 0 1800-c111: 6278 (гамма) 1800-с1 11829 4 1800-с1 12: 6278 (альфа) 850-с1 23250 4 850-с1 13: 6278 (бета) 850-с1 10033 0 850-с1 14: 6278 (гамма) 850-c1 53181 467 850-c1 15: 6278 (гамма) 850-c1-Bisector 19870 2258 850-c1-

1 Ответ

0 голосов
/ 07 июня 2019

Кажется, в регулярном выражении есть ошибка. Я бы использовал следующее:

temp1$sband <- gsub("^(.*?-.*?)-.*", "\\1", temp1$serving-band)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...