2017-09-30 51 views
1

我檢索了不同追蹤期的各種hashtags的Twitter推文。例如,hashtag1被跟蹤了6天,Hashtag2跟蹤了4天,Hashtag3跟蹤了2天。我怎樣才能標準化每個hashtag?我怎樣才能將他們分成平等的宿舍?在此先感謝...以下是代碼......>如何使用R語言對直方圖中的推文進行標準化?

library(streamR) 
    library(rjson) 

    setwd("/Users/Desktop") 
    Tweets = parseTweets("Hashtag1.json") 
    table(Tweets$created_at) 

    dated_Tweets <- as.POSIXct(Tweets$created_at, format = "%a %b %d %H:%M:%S 
    +0000 %Y") 

    hist(dated_Tweets, breaks="hours", freq=TRUE, xlab="dated_Tweets", main= 
    "Distribution of tweets", col="blue") 
+0

你能告訴我們你怎麼弄,現在,解釋究竟是什麼你不滿意?你想爲每個hashtags每天_Weets _嗎? –

+0

是的,我可視化每個hashtag的直方圖,但每個hashtag都有不同的跟蹤時間段,所以我想規範每個hashtag。例如,我想將24小時的每一天劃分爲4個季度(每6小時),然後將所有天數一起累積在同一個直方圖中。 – user3643380

+1

所以你有推文時間戳。你想爲每條推文創建「每日季度」的直方圖?你想看看#2是否在更多的推文上,例如在早晨時分,而在晚上#4? –

回答

1

我覺得你的主絆腳石是將日期時間轉換爲6小時的垃圾箱。您可以使用format.POSIXctcut來實現此目的。這是一個建議,用直方圖來完成。有很多方法來做直方圖,也許你會更喜歡一個表。

library(magrittr) 
    library(ggplot2) 
    ## create some tweet times 
    hash1 <- lubridate::ymd("20170101") + lubridate::seconds(runif(100, 0, 10*86400)) 
    hash2 <- lubridate::ymd("20170101") + lubridate::seconds(runif(100, 0, 31*86400)) 
    hash3 <- lubridate::ymd("20170101") + lubridate::seconds(runif(300, 0, 5*86400)) 
    ## bin these into 6h intervals 
    bins1 <- format(hash1, "%H") %>% 
     as.numeric() %>% 
      cut(breaks=c(0,6,12,18,24), include.lowest = TRUE) 
    hTags <- data.frame(tag="#1", bins=bins1) 
    bins2 <- format(hash2, "%H") %>% 
     as.numeric() %>% 
      cut(breaks=c(0,6,12,18,24), include.lowest = TRUE) 
    hTags <- rbind(hTags, 
        data.frame(tag="#2", bins=bins2)) 
    bins3 <- format(hash3, "%H") %>% 
     as.numeric() %>% 
      cut(breaks=c(0,6,12,18,24), include.lowest = TRUE) 
    hTags <- rbind(hTags, 
        data.frame(tag="#3", bins=bins3)) 
    ggplot(data=hTags, aes(x=bins, fill=tag)) + geom_bar(position="dodge", aes(y=..prop.., group=tag)) 

enter image description here

+0

是的,謝謝!但我可以在哪裏閱讀JSON文件? @OttToomet – user3643380

+0

你應該閱讀和解析這些我創建隨機的。我沒有你的數據,所以我不得不拿出我自己的... –

+0

是的,謝謝。我明白了,但我有兩個問題。 1-如何正常化每個垃圾箱? 2-如何獲取每個垃圾箱的數值? – user3643380