删除R中数据框列中以@开头的字符串

标签 r string

假设数据框是 df,列为 foo。有没有办法删除R中数据框列中以@开头的字符串。

示例:

df <- data.frame(foo=c("@john is awesome than @steve", 
                                        "@steve is good","@mike is nice"))

df
                           foo
1 @john is awesome than @steve
2               @steve is good
3                @mike is nice

如何删除以@开头的整个名字@john、@Steve、@mike。

最终输出应该是

               foo
1  is awesome than 
2          is good
3          is nice

我想删除数据框 df 中以分隔符 @ 开头的 foo 列中的所有字符串。

最佳答案

综合了我和理查德·斯克里文的评论。

df$foo <- gsub(" ?@\\w+ ?", "", df$foo)
df
#               foo
# 1 is awesome than
# 2         is good
# 3         is nice

@\\w+ 匹配 ampersat 后跟一个或多个字母。 ? 匹配开头和结尾的可选空格。

所以它总共寻找匹配

[optional single space]@[one word][optional single space]

关于删除R中数据框列中以@开头的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33377146/

相关文章:

r - R 中跨列的条件变异

java - 在android中将CharSequence的首字母更改为大写

javascript - 在 JavaScript 中转义字符串

java - stringtokenizer的使用方法是什么

java - 如何在 Java 中递增/递减一个 unicode 字符串?

r - R 矩阵可以包含不同的数据类型吗?这个修改过的列表矩阵有效吗?

facebook - Facebook 公共(public)页面上的文本挖掘

RStudio - 在查看器 Pane 中渲染 html 内容

r - 我可以重命名 R 中的关键字吗?

php - mb_detect_encoding 将 ASCII 检测为 UTF-8?