gpt4 book ai didi

r - 防止 R 中的 grep 将 "."视为字母

转载 作者:行者123 更新时间:2023-12-03 18:25:51 26 4
gpt4 key购买 nike

我有一个包含类似于以下文本的字符向量:

text <- c("ABc.def.xYz", "ge", "lmo.qrstu")

我想删除 . 之前的所有内容:
> "xYz" "ge" "qrstu"

然而, grep函数似乎正在处理 .作为一封信:
pattern <- "([A-Z]|[a-z])+$"

grep(pattern, text, value = T)

> "ABc.def.xYz" "ge" "lmo.qrstu"

该模式适用于其他地方,例如 regexpal .

我怎样才能得到 grep表现得像预期的那样?

最佳答案

grep是为了寻找模式。它返回与模式匹配的向量的索引。如果,value=TRUE被指定,它返回值。从描述来看,您似乎想删除子字符串而不是返回初始向量的子集。

如果需要删除子串,可以使用sub

 sub('.*\\.', '', text)
#[1] "xYz" "ge" "qrstu"

作为第一个参数,我们匹配一个模式,即 '.*\\.' .它匹配多个字符之一( .* )后跟一个点( \\. )。 \\需要逃避 .将其视为该符号而不是任何字符。这将匹配到最后一个 .字符串中的字符。我们用 '' 替换匹配的模式作为替换参数,从而删除子字符串。

关于r - 防止 R 中的 grep 将 "."视为字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747578/

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