gpt4 book ai didi

r - 从 r 中的名称列表中提取前两个字符

转载 作者:行者123 更新时间:2023-12-02 19:41:28 24 4
gpt4 key购买 nike

数据框 df1 包含两列:id 和 list_names

id <- seq(1,5)
list_names <- c("john",
"adam, sally",
"rebecca",
"zhang, mike, antonio",
"mark, henry, scott, john, steve, jason, nancy")

df1 <- data.frame(id, list_names)

我需要添加一个附加列,其中包含从每个名称中提取的前两个字符。

新的数据集看起来像

enter image description here

请注意,无需指定每行中的名称数量,因为它可以是任何内容。

最佳答案

我们可以使用str_extract_all提取单词边界后的两个字符

library(stringr)
library(dplyr)
library(purrr)
df1 %>%
mutate(two_chars = str_extract_all(list_names, "\\b[a-z]{2}") %>%
map_chr(toString))
# id list_names two_chars
#1 1 john jo
#2 2 adam, sally ad, sa
#3 3 rebecca re
#4 4 zhang, mike, antonio zh, mi, an
#5 5 mark, henry, scott, john, steve, jason, nancy ma, he, sc, jo, st, ja, na

或者使用gsub

gsub("\\b([a-z]{2})[^,]+", "\\1", df1$list_names)
#[1] "jo" "ad, sa" "re" "zh, mi, an"
#[5] "ma, he, sc, jo, st, ja, na"

关于r - 从 r 中的名称列表中提取前两个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60062565/

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