gpt4 book ai didi

regex - 在 R 中提取名字

转载 作者:行者123 更新时间:2023-12-04 16:24:34 25 4
gpt4 key购买 nike

假设我的数据框中有一个人名向量:

names <- c("Bernice Ingram", "Dianna Dean", "Philip Williamson", "Laurie Abbott",
"Rochelle Price", "Arturo Fisher", "Enrique Newton", "Sarah Mann",
"Darryl Graham", "Arthur Hoffman")

我想用名字创建一个向量。我所知道的关于它们的所有信息是它们在上面的向量中排在第一位,然后是一个空格。换句话说,这就是我要找的:
"Bernice" "Dianna"  "Philip" "Laurie" "Rochelle"
"Arturo" "Enrique" "Sarah" "Darryl" "Arthur"

我发现了一个类似的问题 here ,但答案(尤其是 this one )并没有多大帮助。到目前为止,我已经尝试了来自 grep family 的几个函数变体。 ,而我最接近有用的东西是运行 strsplit(names, " ")分隔名字然后 strsplit(names, " ")[[1]][1]只获取第一人称的名字。我一直在尝试调整最后一个命令,以给我一个完整的名字向量,但无济于事。

最佳答案

使用 sapply提取名字:

> sapply(strsplit(names, " "), `[`, 1)
[1] "Bernice" "Dianna" "Philip" "Laurie" "Rochelle" "Arturo" "Enrique"
[8] "Sarah" "Darryl" "Arthur"

一些评论:

以上工作正常。为了使它更通用,您可以更改 split strsplit 中的参数函数来自 " ""\\s+"它涵盖了多个空间。那么你也可以使用 gsub直接提取空格前的所有内容。最后一种方法将只使用一个函数调用并且可能更快(但我没有检查基准)。

关于regex - 在 R 中提取名字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19321673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com