我目前正在处理包含5570个巴西直辖市信息的几个数据集,我经常不得不按名称合并它们。但是碰巧在状态之间重复了几个名称(在UF:行中命名)。数据集的示例是:
<chr>
1 UF: Alagoas
2 IBATEGUARA
3 MARAGOGI
4 MESSIAS
5 PENEDO
6 PORTO CALVO
7 UF: Amazonas
8 APUI
9 HUMAITA
10 MANAQUIRI
我想要的是可以区分哪个城市的州:
<chr>
1 UF: Alagoas
2 IBATEGUARA (AL)
3 MARAGOGI (AL)
4 MESSIAS (AL)
5 PENEDO (AL)
6 PORTO CALVO (AL)
7 UF: Amazonas
8 APUI (AM)
9 HUMAITA (AM)
10 MANAQUIRI (AM)
有了这个,我将在每个地方都有一个唯一的名称。我尝试使用mutate_at
并输入每个状态标识符之间的行,但是我想使用一种更简单的方法来跨不同的数据集执行此操作。如何修改两组行之间的所有字符串?
一种选择是根据“ UF”字符串的出现来创建分组列
library(dplyr)
library(stringr)
df1 %>%
group_by(grp = cumsum(str_detect(col1, '^UF:\\s+')) %>%
mutate(newcol = toupper(str_extract(first(col1), '(?<=UF: )\\w{2}')),
col1 = case_when(row_number() > 1
~ sprintf('%s (%s)', col1, newcol), TRUE ~ col1)) %>%
ungroup %>%
select(col1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句