我正在尝试从R中的字符串中提取主题标签,但无法解决以下错误:
(示例集):
我有一个数据框'MyData',其中一列包含推文的文本(名为'tweets'),还有一个空列,我想在其中放置每个推文中包含的主题标签(名为'hashtags')。
View(MyData)
tweets hashtags
hello #test1
hello #test2 goodbye #test3
我按如下方式提取主题标签:
MyData$hashtags <- as.character(str_extract_all(MyData$tweets, "#\\S+))
这给了我:
View(MyData)
tweets hashtags
hello #test1 #test1
hello #test2 goodbye #test3 c("#test2","#test3")
但是,我希望显示器只是:
View(MyData)
tweets hashtags
hello #test1 #test1
hello #test2 goodbye #test3 #test2, #test3
毫无疑问,这是一个非常简单的错误,但无论我使用什么提取方法(我尝试过多次),带有多个主题标签的推文总是被c包围(“”,“”,...... )。
有人可以推荐一种方法来提取所需格式的主题标签,或者之后改变输出吗?
感谢您的帮助。
答案 0 :(得分:2)
这个怎么样
#sample data
MyData<-read.table(text="tweets
hello #test1
hello #test2 goodbye #test3", comment="", header=T, sep="\t")
现在使用paste()
逗号加入您的搜索结果
MyData$hashtags <- sapply(str_extract_all(MyData$tweets, "#\\S+"), paste, collapse=", ")
MyData
# tweets hashtags
# 1 hello #test1 #test1
# 2 hello #test2 goodbye #test3 #test2, #test3
这是有效的,因为str_extract_all返回一个字符向量列表。不是使用as.character
转换该列表,而是使用paste(, collapse=)
,我们可以控制这些值的折叠方式并使其保持良好的字符向量。