我有推文csv。我使用这个ruby
库获得了它:
https://github.com/sferik/twitter。
csv是两列150行,第二列是文本消息:
Text
1 RT @AlstomTransport: #Alstom and OHL to supply a #metro system to #Guadalajara #rail #Mexico http://t.co/H88paFoYc3 http://t.co/fuBPPqNts4
我必须做一个情绪分析,所以我需要清理短信,删除链接,RT,Via,以及一切无用的分析。
我尝试使用R,使用几个教程中的代码:
> data1 = gsub("(RT|via)((?:\\b\\W*@\\w+)+)", "", data1)
但输出没有任何意义:
[1] "1:150"
[2] "c(113, 46, 38, 11, 108, 100, 45, 44, 9, 89, 99, 93, 102, 101, 110, 93, 61, 57, 104, 66, 86, 53, 42, 43, 37, 7, 88, 32, 122, 131, 14, 102, 105, 12, 54, 13, 72, 87, 55, 132, 29, 28, 10, 15, 81, 81, 107, 87, 106, 81, 98, 73, 65, 52, 94, 97, 65, 59, 60, 50, 48, 121, 117, 75, 79, 111, 115, 119, 118, 91, 79, 31, 76, 111, 85, 62, 91, 103, 79, 120, 78, 47, 49, 8, 129, 123, 124, 58, 71, 25, 36, 80, 127, 112, 23, 22, 35, 21, 30, 74, 82, 51, 63, 130, 135, 134, 90, 83, 63, 128, 16, 20, 19, 34, 27, 26, 33, 77, \n114, 126, 64, 69, 4, 135, 41, 40, 17, 67, 92, 96, 84, 92, 56, 18, 125, 5, 6, 133, 24, 39, 70, 95, 116, 68, 84, 109, 92, 3, 1, 2)"
任何人都可以帮助我吗?谢谢。
答案 0 :(得分:3)
您似乎尝试将整个data.frame传递给gsub
,而不仅仅是文本列。 gsub
更喜欢处理字符向量。相反,你应该做
data1[,2] = gsub("(RT|via)((?:\\b\\W*@\\w+)+)", "", data1[,2])
只转换第二列。