我想要提取有" @"在其中的符号并删除所有 换句话说。所以,我的数据将如下所示:
Author Content
Name1 Hi,@tim how are you @Blue.
Name2 @xyz, are you ok?
Name3 it is good @my @you
其中作者和内容是列名。
我想要以下格式的数据:
Author Content
Name1 tim
Name1 Blue
Name2 xyz
Name3 my
Name3 you
所以,我只想要有" @"与它的符号,并放弃其他一切。
答案 0 :(得分:3)
我们可以使用str_extract_all
中的stringr
来提取“内容”中\\w+
后面的字词@
}。列由'作者'组成。在这里,我使用data.table
方法通过操作调用组(在将' data.frame'转换为' data.table'(setDT(df1)
)之后。 / p>
library(data.table)
library(stringr)
setDT(df1)[, .(Content=unlist(str_extract_all(Content,
"(?<=@)\\w+"))), by = Author]
# Author Content
#1: Name1 tim
#2: Name1 Blue
#3: Name2 xyz
#4: Name3 my
#5: Name3 you
df1 <- structure(list(Author = c("Name1", "Name2",
"Name3"), Content = c("Hi,@tim how are you @Blue.",
"@xyz, are you ok?", "it is good @my @you")),
.Names = c("Author", "Content"), class = "data.frame",
row.names = c(NA, -3L))