使用R,当字符串提取在数据框中创建列表元素时,如何为列表中的每个项目添加一行?

律师

我在数据框变量中有数百个地址,需要从中提取邮政编码。一些地址包含多个城市,每个城市都有一个邮政编码。这是一个数据框和提取邮政编码的R代码的模拟示例。

require(qdapRegex)
require(stringr)

df <- data.frame(address = c("Walnut; 94596, Ontario, 91761, Beach, CA 90071", "Irvine Cal 92164"), var2 = "text")
df$zip.Rinker <- sapply(df$address, FUN = rm_zip, extract=TRUE) 

rm_zip泰勒·林克(Tyler Rinker)qdapRegex软件包提供功能可提取所有邮政编码,如果有多个邮政编码,则将其放在列表中。

> df
                                         address var2          zip.Rinker
1 Walnut; 94596, Ontario, 91761, Beach, CA 90071 text 94596, 91761, 90071
2                               Irvine Cal 92164 text               92164

R如何为zip.Rinker下第1行中的每个邮政编码创建新行?像下面这样的东西将是理想的。请注意,会有数十个地址具有多个邮政编码,因此我希望找到不需要手动步骤的解决方案。

                                         address var2          zip.Rinker
1 Walnut; 94596, Ontario, 91761, Beach, CA 90071 text               94596
2 Walnut; 94596, Ontario, 91761, Beach, CA 90071 text               91761
3 Walnut; 94596, Ontario, 91761, Beach, CA 90071 text               90071
4                               Irvine Cal 92164 text               92164

谢谢您的时间。

PS使用stringr,此代码提取邮政编码并提出相同的挑战。

df$zip.stringr <- str_extract_all(string = df$address, pattern = "\\d{5}") 
泰勒·林克

您可以这样做:

data.frame(rep(df$address, sapply(df$zip.Rinker, length)), unlist(df$zip.Rinker)

##   rep.df.address..sapply.df.zip.Rinker..length.. unlist.df.zip.Rinker.
## 1 Walnut; 94596, Ontario, 91761, Beach, CA 90071                 94596
## 2 Walnut; 94596, Ontario, 91761, Beach, CA 90071                 91761
## 3 Walnut; 94596, Ontario, 91761, Beach, CA 90071                 90071
## 4                               Irvine Cal 92164                 92164

但是请注意,rm_zip它已经向量化,并且在stringi包装程序包时非常快因此无需sapply下面是使一个方法的代码中使用更浓缩qdapToolslist2df,需要一个名为list向量,并把它们变成一个data.frame

library(qdapTools)
list2df(setNames(rm_zip(df$address, extract=TRUE), df$address), "zip", "address")[, 2:1]

##                                          address   zip
## 1 Walnut; 94596, Ontario, 91761, Beach, CA 90071 94596
## 2 Walnut; 94596, Ontario, 91761, Beach, CA 90071 91761
## 3 Walnut; 94596, Ontario, 91761, Beach, CA 90071 90071
## 4                               Irvine Cal 92164 92164

而且我喜欢magrittr嵌套函数框架,因此是这样的:

library(qdapTools)
library(magrittr)

df$address %>%
    rm_zip(extract=TRUE) %>%
    setNames(df$address) %>%
    list2df("zip", "address") %>%
    `[`(, 2:1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:在数据框中的行迭代在列的字符串中找到字母时添加一行

来自分类Dev

如何为列表中的每个项目移动字符串的一部分

来自分类Dev

使用 python 2 向列表中的每一行添加相同的字符串

来自分类Dev

如何通过在数据框中特定列的每一行中使用 .join 来连接列表中的所有元素

来自分类Dev

R 获取在数据框列中具有字符串变量的第一行的行号

来自分类Dev

使用dplyr在数据框中每个组的开头添加一行

来自分类Dev

如何使用索引字符串从R中的数据框或矩阵中提取行

来自分类Dev

将项目从一个列表框移动到另一个列表框时,如何添加到进入第二个列表框的字符串中?

来自分类Dev

R:将列表中每个列表的元素求和,然后在数据框中返回结果

来自分类Dev

如何删除列表中每个元素的第一行

来自分类Dev

如何检查一行是否包含字符串列表中的特定字符串?

来自分类Dev

R如何提取列表中每个矩阵的第一行?

来自分类Dev

如何将功能映射到列表中每个数据框的每一行?

来自分类Dev

使用Scala将字符串连接到Spark数据框中的列表的每个元素

来自分类Dev

为数据框中的每一行创建json字符串

来自分类Dev

如何在pyspark的数据框中的每一行中查找字符串

来自分类Dev

如何在一行中打印列表中的所有字符串?

来自分类Dev

R:如何在数据框中输出唯一的字符串(文本)?

来自分类Dev

在列表的每个数据框中添加一行,其中包含某些行的平均值

来自分类Dev

在R中,如何修改给定字符串名称的列表中的数据框列

来自分类Dev

R - 当两列或更多列在一行中匹配时在数据框中创建新列

来自分类Dev

如何在列表中的字符串及其索引显示在同一行上?

来自分类Dev

如何在列表中的字符串及其索引显示在同一行上?

来自分类Dev

如何用字符串删除列表中的逗号,并编写一行代码

来自分类Dev

使用存储在列表中的数据框名称在数据框列表的每一列和每一行上执行多种功能

来自分类Dev

如何为列表中的每个项目添加特殊ID

来自分类Dev

如何为列表中的每个项目添加文本视图?

来自分类Dev

在数据框的每一行中进行搜索时,如何从关键字列表中获取匹配的关键字?

来自分类Dev

如何从数据框中的列中提取字符串模式,并创建一个包含提取的字符串的新数据框列?

Related 相关文章

  1. 1

    Python:在数据框中的行迭代在列的字符串中找到字母时添加一行

  2. 2

    如何为列表中的每个项目移动字符串的一部分

  3. 3

    使用 python 2 向列表中的每一行添加相同的字符串

  4. 4

    如何通过在数据框中特定列的每一行中使用 .join 来连接列表中的所有元素

  5. 5

    R 获取在数据框列中具有字符串变量的第一行的行号

  6. 6

    使用dplyr在数据框中每个组的开头添加一行

  7. 7

    如何使用索引字符串从R中的数据框或矩阵中提取行

  8. 8

    将项目从一个列表框移动到另一个列表框时,如何添加到进入第二个列表框的字符串中?

  9. 9

    R:将列表中每个列表的元素求和,然后在数据框中返回结果

  10. 10

    如何删除列表中每个元素的第一行

  11. 11

    如何检查一行是否包含字符串列表中的特定字符串?

  12. 12

    R如何提取列表中每个矩阵的第一行?

  13. 13

    如何将功能映射到列表中每个数据框的每一行?

  14. 14

    使用Scala将字符串连接到Spark数据框中的列表的每个元素

  15. 15

    为数据框中的每一行创建json字符串

  16. 16

    如何在pyspark的数据框中的每一行中查找字符串

  17. 17

    如何在一行中打印列表中的所有字符串?

  18. 18

    R:如何在数据框中输出唯一的字符串(文本)?

  19. 19

    在列表的每个数据框中添加一行,其中包含某些行的平均值

  20. 20

    在R中,如何修改给定字符串名称的列表中的数据框列

  21. 21

    R - 当两列或更多列在一行中匹配时在数据框中创建新列

  22. 22

    如何在列表中的字符串及其索引显示在同一行上?

  23. 23

    如何在列表中的字符串及其索引显示在同一行上?

  24. 24

    如何用字符串删除列表中的逗号,并编写一行代码

  25. 25

    使用存储在列表中的数据框名称在数据框列表的每一列和每一行上执行多种功能

  26. 26

    如何为列表中的每个项目添加特殊ID

  27. 27

    如何为列表中的每个项目添加文本视图?

  28. 28

    在数据框的每一行中进行搜索时,如何从关键字列表中获取匹配的关键字?

  29. 29

    如何从数据框中的列中提取字符串模式,并创建一个包含提取的字符串的新数据框列?

热门标签

归档