【问题标题】:spliting hashtags in a data.frame object with R使用 R 在 data.frame 对象中拆分主题标签
【发布时间】:2017-01-15 06:58:00
【问题描述】:

我正在收集 twitter 的标签。每条推文都可以包含主题标签。

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"  

我的期望:一个带有一行标签的 data.frame

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

我尝试了什么:

hashtags_df <-as.data.frame(hashtags) 

【问题讨论】:

  • as.data.frame() 究竟应该如何预测您的意图? This 可能有助于标签识别和提取。我很好奇你将如何处理标签垃圾邮件、标签污染和标签滥用。你的 20-30% 的语料库中都会有这些。
  • 我正在努力。

标签: r twitter hashtag


【解决方案1】:
hashtags[!lengths(hashtags)] <- NA

这会将您的长度为零的列表替换为 NA。 (通过 Dirty Sock Sniffer 解决此问题的更好方法)

hashtags <- unlist(hashtags)

将为您提供值的列向量。如果你想要一个数据框,现在可以使用 as.data.frame。

hashtags_df <- as.data.frame(hashtags)

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

【讨论】:

  • 使用 unlist 也是我会做的,但它与 OP 想要的输出不完全匹配:你不会得到任何 NAs。
  • 啊,很好,谢谢!我知道有一些更简单的东西,但我对这种类型的代码不是很了解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
  • 2021-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多