这里还是比较新的R。我有微博的一列,我试图创建一个包含转推柄“RT @blahblah”,像这样的列:str_extract_all返回一个列表,但我想要一个矢量
Tweets Retweetfrom
RT @john I had a good day RT @john
RT @josh I had a bad day RT @josh
这是我的代码:
r$Retweetfrom <- str_extract_all(r$Tweets, "^RT[:space:][email protected][:graph:]+")
这是给我的结果是好的,但新的列不是矢量,而是列表。当我尝试将其列入清单时,它会引发错误:
Error in `$<-.data.frame`(`*tmp*`, "Retweetfrom", value = c("@AlpineITW", "@AllScienceGlobe", : replacement has 1168 rows, data has 2306
任何人都知道如何处理此问题?非常感谢。
啊,这是有道理谢谢!但是如果我试图提取推文中的所有提及呢?有时在一条推文中有不止一个提及。 –
这是一个稍微不同的问题;你的正则表达式抓住了RT'd给出的那个人(并且我第一次错过了它),你在正则表达式中使用'^',所以你最多只能得到一个(我又坏了,错过了'+' ;你会得到他们全部)。如果你想捕获tweet中的所有'@ user'提到,不管他们是否执行了RT,那么你需要决定如何在'data.frame'中存储一个可变长度的列表。 –
现在这变得更有意义了。非常感谢乔纳森! –