如何使用 R 语言规范化直方图中的推文?

How to normalize tweets in Histogram using R language?

我检索了具有不同跟踪周期的各种主题标签的 Twitter 推文。例如,hashtag1 被跟踪了 6 天,Hashtag2 被跟踪了 4 天,Hashtag3 被跟踪了 2 天。如何规范化每个主题标签?我怎样才能把它们分成相等的四分之一?提前致谢...这是代码......>

    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")

您可以使用 chron 包并通过转换为 bin 来仅处理小时数,如

中所写

我认为您的主要障碍是将日期时间转换为 6 小时分箱。您可以使用 format.POSIXctcut 来实现。这是一个带有直方图的建议。有很多方法可以制作直方图,也许您更喜欢 table。

   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))