Tôi đang dò tìm xung quanh với chức năng R, bạn nhập vào văn bản tìm kiếm, số lượng trang web tìm kiếm và bán kính xung quanh mỗi trang web. Ví dụ twitterMap("#rstats",10,"10mi")
đây là các mã:
twitterMap <- function(searchtext,locations,radius){
require(ggplot2)
require(maps)
require(twitteR)
#radius from randomly chosen location
radius=radius
lat<-runif(n=locations,min=24.446667, max=49.384472)
long<-runif(n=locations,min=-124.733056, max=-66.949778)
#generate data fram with random longitude, latitude and chosen radius
coordinates<-as.data.frame(cbind(lat,long,radius))
coordinates$lat<-lat
coordinates$long<-long
#create a string of the lat, long, and radius for entry into searchTwitter()
for(i in 1:length(coordinates$lat)){
coordinates$search.twitter.entry[i]<-toString(c(coordinates$lat[i],
coordinates$long[i],radius))
}
# take out spaces in the string
coordinates$search.twitter.entry<-gsub(" ","", coordinates$search.twitter.entry ,
fixed=TRUE)
#Search twitter at each location, check how many tweets and put into dataframe
for(i in 1:length(coordinates$lat)){
coordinates$number.of.tweets[i]<-
length(searchTwitter(searchString=searchtext,n=1000,geocode=coordinates$search.twitter.entry[i]))
}
#making the US map
all_states <- map_data("state")
#plot all points on the map
p <- ggplot()
p <- p + geom_polygon(data=all_states, aes(x=long, y=lat, group = group),colour="grey", fill=NA)
p<-p + geom_point(data=coordinates, aes(x=long, y=lat,color=number.of.tweets
)) + scale_size(name="# of tweets")
p
}
# Example
searchTwitter("dolphin",15,"10mi")

Có một số vấn đề lớn, tôi đã gặp mà tôi không chắc chắn làm thế nào để đối phó với. Đầu tiên, khi viết mã tìm kiếm 15 vị trí được tạo ngẫu nhiên khác nhau, các vị trí này được tạo ra từ phân bố đồng đều từ kinh độ tối đa ở phía đông ở Hoa Kỳ đến phía tây tối đa và vĩ độ xa nhất về phía bắc đến phía nam xa nhất. Điều này sẽ bao gồm các địa điểm không ở Hoa Kỳ, nói ngay phía đông hồ của rừng minnesota ở Canada. Tôi muốn một hàm kiểm tra ngẫu nhiên để xem vị trí đã tạo có ở Hoa Kỳ hay không và loại bỏ nó nếu không. Quan trọng hơn, tôi muốn tìm kiếm hàng ngàn địa điểm, nhưng twitter không thích điều đó và cho tôi một số 420 error enhance your calm
. Vì vậy, có lẽ tốt nhất là nên tìm kiếm vài giờ một lần và từ từ xây dựng một cơ sở dữ liệu và xóa các tweet trùng lặp. Cuối cùng, nếu chọn một chủ đề phổ biến từ xa, R sẽ đưa ra lỗi như Error in function (type, msg, asError = TRUE) : transfer closed with 43756 bytes remaining to read
. Tôi có chút băn khoăn về cách giải quyết vấn đề này.
Bạn cần cung cấp một 'geocode' cho 'searchTwitter' để sử dụng. Xem tài liệu thư viện '? SearchTwitter'. –
Tôi thấy rằng bạn có thể cung cấp mã địa lý và bán kính vào 'searchTwitter' nhưng điều đó không tạo ra mã địa lý cho mỗi tweet được kéo. – iantist
nhưng bạn sẽ có mã địa lý mà bạn cung cấp, đúng không? với một bán kính nhỏ hơn có thể cung cấp cho bạn những gì bạn cần? –