【问题标题】:Split Postal Code in R ( just the 2 first numbers)在 R 中拆分邮政编码(仅前 2 个数字)
【发布时间】:2020-02-17 12:23:40
【问题描述】:

我有一个数据框。其中一列是加泰罗尼亚的邮政编码,例如 17190 是 Salt 村,“08”是巴塞罗那,“17”是赫罗纳,“25”是莱里达,“43”是塔拉戈纳,这 4 个县。

我想知道如何将 17190 拆分/减少到 17,按县分组

提前致谢

【问题讨论】:

标签: r split character


【解决方案1】:

我们可以使用substr

substr(17190, start=1, stop=2)

返回:

[1] "17"

编辑:

如何将substr 应用于整列:

substr(c(1234, 4567, 8910), start=1, stop=2)

返回:

[1] "12" "45" "89"

或使用data.frame 列:

iris$short_species <- substr(iris$Species, start=1, stop=2)

【讨论】:

  • 并将其应用于所有列?使用“应用”功能?对不起,我是 R 的新人
【解决方案2】:

减去是可以的,我会这样做,此外,如果您有 50 个邮政编码,您可能希望有第二个表格,您可以在其中将代码与省份名称相关联。

这是一个你可能感兴趣的例子:

Codis<-data.frame(codi=c("08","17","25","43"),
                  provincia=c("Barcelona","Girona","Lleida","Tarragona"))
ex<-data.frame(CP=c("17888","17963","08123","08951","25003","25195","43333","43005"))

ex$provincia<-Codis$provincia[match(unlist(substr(ej$CP,1,2)),Codis$codi)]

结果:

     CP provincia
1 17888    Girona
2 17963    Girona
3 08123 Barcelona
4 08951 Barcelona
5 25003    Lleida
6 25195    Lleida
7 43333 Tarragona
8 43005 Tarragona

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多