【问题标题】:How to normalize tweets in Histogram using R language?如何使用 R 语言标准化直方图中的推文?
【发布时间】:2018-03-12 04:58:48
【问题描述】:

我检索了具有不同跟踪期的各种主题标签的 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")

【问题讨论】:

  • 你能告诉我们你现在得到了什么,并解释你到底对什么不满意吗?你想为每个主题标签提供类似每天的推文吗?
  • 是的,我可视化了每个主题标签的直方图,但是每个主题标签都有不同的跟踪周期,所以我想规范化每个主题标签。例如,我想将 24 小时的每一天分成 4 个季度(每 6 小时),然后在同一个直方图上累积所有天。
  • 所以你有推文时间戳。您想为每条推文创建“日区”直方图吗?你想看看 #2 是否在推特上发得更多,比如早上的时候,而 #4 是在晚上?
  • @OttToomet 没错!

标签: r twitter histogram normalization tweets


【解决方案1】:

您可以使用 chron 包并通过转换为 https://stackoverflow.com/a/37666558/7418254 中所写的 bin 来仅处理小时

【讨论】:

    【解决方案2】:

    我认为您的主要绊脚石是将日期时间转换为 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))
    

    【讨论】:

    • 好的,谢谢!但是我可以在哪里阅读 JSON 文件? @OttToomet
    • 你应该在我创建随机的地方阅读并解析这些。我没有你的数据,所以我必须自己想出...
    • 好的,谢谢。我想通了,但我有两个问题。 1-如何标准化每个箱子? 2- 如何获取每个 bin 的数值?
    • “规范化”到底是什么意思?你想要每 6 小时组的红 + 绿 + 蓝 = 1 吗?你的意思是 6h 组中的红色 = 1,还有其他颜色?您可以通过table(hTags$tab, hTags$bins) 获取数值,但同样,这取决于您想要获取的具体内容。
    • 是的,我的意思是 6h 组中的红色 = 1
    猜你喜欢
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多