2016-09-07 48 views
1

我正在收集Twitter的主题标签。每条推文都可以包含主题标签。将数据框架对象中的主题标签与R分开

tests <- c("xxxxxx #SaveTheDate xxxxxx #Histoire] xxxxxx #Femmes xxxxxxx #ports", 
     "xxxxxxxxxxxx", 
     "xxxx #rock xxxxxx #Nantes" , 
     "xxxxxx #lvan xxxxxxx #nantes xxxxx #ilsepassetoujoursuntruc") 


library (stringr) 

hashtags <- str_extract_all(tests, "#\\S+") 

str (hashtags) 

马结果:

str(hashtags) 
list of 4 
$ : chr [1:4] "#SaveTheDate" "#Histoire]" "#Femmes" "#ports" 
$ : chr(0) 
$ : chr [1:2] "#rock" "#Nantes" 
$ : chr [1:3] "#lvan" "#nantes" "#ilsepassetoujoursuntruc" 

我想到:一个包括hashtag一个data.frame对于行

"#SaveTheDate" 
"#Histoire" 
"#Femmes" 
    "#ports" 
    NA 
    .... 

我试了一下:

hashtags_df <-as.data.frame(hashtags) 
+0

'as.data.frame()'应该如何描述你的意图? [This](http://stackoverflow.com/questions/38788494/hashtag-extract-function-in-r-programming/38789142#38789142)可能有助于标签识别和提取。我很好奇你将如何处理标签垃圾邮件,哈希标签污染和滥用标签。你的语料库中有20-30%会散布在那里。 – hrbrmstr

+0

我正在努力。 – Wilcar

回答

3
hashtags[!lengths(hashtags)] <- NA 

这将用NAs替换你的长度为零的列表。 (通过肮脏的袜子嗅探器更好的解决方案)

hashtags <- unlist(hashtags) 

会给你一个值的列向量。如果你想要一个数据框,你现在可以使用as.data.frame。

hashtags_df <- as.data.frame(hashtags) 

我不知道提取主题标签等的最佳方式,但是这应该回答当前提出的问题。

+0

使用'unlist'也是我要做的,但它完全不符合OP的期望输出:你不会得到任何'NA's。 –

+0

啊,很好,谢谢!我知道有一些更简单的东西,但我对这种类型的代码并不熟悉。 –

+1

明白了,谢谢! :) –