gpt4 book ai didi

r - 如何将长名称转换为较短(两部分)名称

转载 作者:行者123 更新时间:2023-12-01 07:33:14 26 4
gpt4 key购买 nike

我有一个字符向量,其中使用了长名称,它将由多个由点状分隔符连接的单词组成。

x <- c("Duschekia.fruticosa..Rupr...Pouzar",
"Betula.nana.L.",
"Salix.glauca.L.",
"Salix.jenisseensis..F..Schmidt..Flod.",
"Vaccinium.minus..Lodd...Worosch")

名称的长度不同。但只有整个名字的前两个词是重要的。

我的目标是获得最多 7 个符号的名称:来自前两个单词的 3 个初始符号和它们之间的“点”形式的分隔符。

这些示例非常接近我的要求,但我不知道如何将这些代码变体应用于我的案例。
R How to remove characters from long column names in a data frame
how to append names to " column names" of the output data frame in R?

我应该怎么做才能使退出名称看起来像这样?
x <- c("Dus.fru",
"Bet.nan",
"Sal.gla",
"Sal.jen",
"Vac.min")

任何帮助,将不胜感激。

最佳答案

您可以执行以下操作:

gsub("(\\w{1,3})[^\\.]*\\.(\\w{1,3}).*", "\\1.\\2", x)
# [1] "Dus.fru" "Bet.nan" "Sal.gla" "Sal.jen" "Vac.min"

首先我们最多匹配 3 个字符 (\\w{1,3}) ,然后忽略任何不是点的内容 [^\\.]* , 匹配一个点 \\.然后再次最多 3 个字符 (\\w{1,3}) .最后是什么,在那之后 .* .然后我们只使用括号中的东西并用点分隔它们 \\1.\\2 .

关于r - 如何将长名称转换为较短(两部分)名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55810196/

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