R - использовать регулярное выражение для извлечения информации из фрейма данных - PullRequest
0 голосов
/ 14 мая 2019

У меня есть этот фрейм данных

L1 <- read_csv("L1.csv", col_names=FALSE)

Что выглядит так:

95  CVEGEO=0901500011341<BR>CVE_ENT=09<BR>CVE_MUN=015<BR>CVE_LOC=0001<BR>CVE_AGEB=1341<BR>
96  CVEGEO=0901500010837<BR>CVE_ENT=09<BR>CVE_MUN=015<BR>CVE_LOC=0001<BR>CVE_AGEB=0837<BR>
97  CVEGEO=0901500010201<BR>CVE_ENT=09<BR>CVE_MUN=015<BR>CVE_LOC=0001<BR>CVE_AGEB=0201<BR>
98  CVEGEO=0901600011226<BR>CVE_ENT=09<BR>CVE_MUN=016<BR>CVE_LOC=0001<BR>CVE_AGEB=1226<BR>
99  CVEGEO=0901500010606<BR>CVE_ENT=09<BR>CVE_MUN=015<BR>CVE_LOC=0001<BR>CVE_AGEB=0606<BR>

И я пытаюсь получить номер AGEB. Этот код работает для последней строки:

AGEBS_L1 <- sub(".*AGEB=(.*)<.*", "\\1", L1)

Но когда я пытаюсь использовать йо, используйте «lapply», чтобы получить ВОЗРАСТ во всех моих рядах:

AGEBS_L1 <- lapply(L1, sub(".*AGEB=(.*)<.*", "\\1", L1))

Это не работает. Поэтому я надеюсь на подсказку, как это сделать.

1 Ответ

0 голосов
/ 15 мая 2019

sub(".<em>AGEB=(.</em>)<.*", "\1", L1$V2) извлекает их все для меня.Обратите внимание, что я работаю с вектором (один столбец фрейма), тогда как ваш код пытается работать с целым фреймом одновременно, что для меня не имеет смысла.- r2evans

...