gpt4 book ai didi

regex - R在data.frame中获取双/三重姓氏的首字母

转载 作者:行者123 更新时间:2023-12-04 22:01:35 25 4
gpt4 key购买 nike

我有一个包含 2 列的数据框:

> df1
Surname Name
1 The Builder Bob
2 Zeta-Jones Catherine

我想添加第三列“Shortened_Surname”,其中包含姓氏字段中所有单词的首字母:

      Surname      Name Shortened_Surname
1 The Builder Bob TB
2 Zeta-Jones Catherine ZJ

注意第二个名字中的“-”。我用空格和连字符分隔了姓氏。

我已经尝试过:

第 1 步:

> strsplit(unlist(as.character(df1$Surname))," ")
[[1]]
[1] "The" "Builder"

[[2]]
[1] "Zeta-Jones"

我的研究表明我可以使用 strtrim 作为第 2 步,但我发现的只是一些不这样做的方法。

最佳答案

您可以使用环视来定位空格、连字符和行首。例如,任何前面没有行首、空格或连字符的字符 (.) 应替换为“”:

with(df, gsub("(?<!^|[ -]).", "", Surname, perl=TRUE))
[1] "TB" "ZJ"

with(df, gsub("(?<=[^ -]).", "", Surname, perl=TRUE))

第二个 gsub 将空格 ("") 替换为前面不是 "" 的任何字符,或者“-”

关于regex - R在data.frame中获取双/三重姓氏的首字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34720338/

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