----
## Eclipse Forums
### Forums posts
**Download**: [`r file_forums_posts`.gz](../`r file_forums_posts`.gz)
```{r forums_posts}
data <- read.csv(file=file_forums_posts, header=T)
```
File is [``r file_forums_posts``](../`r file_forums_posts`.gz), and has ``r ncol(data)`` columns for ``r nrow(data)`` posts. The evolution of posts
```{r forums_posts_evol}
data$created.date <- as.POSIXct(data$created_date, origin="1970-01-01")
posts.xts <- xts(data, order.by = data$created.date)
time.min <- index(posts.xts[1,])
time.max <- index(posts.xts[nrow(posts.xts)])
all.dates <- seq(time.min, time.max, by="weeks")
empty <- xts(order.by = all.dates)
merged.data <- merge(empty, posts.xts$id, all=T)
merged.data[is.na(merged.data) == T] <- 0
posts.weekly <- apply.weekly(x=merged.data, FUN = nrow)
names(posts.weekly) <- c("posts")
p <- dygraph(
data = posts.weekly[-1,],
main = paste('Weekly forum posts for ', project_id, sep=''),
width = 800, height = 250 ) %>%
dyAxis("x", drawGrid = FALSE) %>%
dySeries("posts", label = "Weekly posts") %>%
dyOptions(stepPlot = TRUE) %>%
dyRangeSelector()
p
```
The list of the 10 last active posts on the forums:
```{r forums_posts_table, results='asis'}
data$created.date <- as.POSIXct(data$created_date, origin="1970-01-01")
posts.table <- head(data[,c('id', 'subject', 'created.date', 'author_id')], 10)
posts.table$subject <- paste('', posts.table$subject, '', sep='')
posts.table$created.date <- as.character(posts.table$created.date)
names(posts.table) <- c('ID', 'Subject', 'Post date', 'Post author')
print(
xtable(head(posts.table, 10),
caption = paste('10 most recent posts on', project_id, 'forum.', sep=" "),
digits=0, align="lllll"), type="html",
html.table.attributes='class="table table-striped"',
caption.placement='bottom',
include.rownames=FALSE,
sanitize.text.function=function(x) { x }
)
```
### Forums threads
**Download**: [`r file_forums_threads`.gz](../`r file_forums_threads`.gz)
```{r forums_threads}
data <- read.csv(file=file_forums_threads, header=T)
```
File is [``r file_forums_threads``](../`r file_forums_threads`.gz), and has ``r ncol(data)`` columns for ``r nrow(data)`` threads. A wordcloud with the main words used in threads is presented below.
```{r forums_threads_viz, message=FALSE, echo=FALSE, warning=FALSE, fig.width=5, fig.height=5}
require(tm)
require(wordcloud)
require(SnowballC)
posts.vector <- as.vector(data$subject)
Encoding(posts.vector) <- "UTF-8"
mysrc <- VectorSource(posts.vector)
corpus <- VCorpus(mysrc)
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, content_transformer(tolower))
corpus <- tm_map(corpus, content_transformer(removePunctuation))
corpus <- tm_map(corpus, content_transformer(removeNumbers))
corpus <- tm_map(corpus, removeWords, stopwords("english"))
a <- tm_map(corpus, stemDocument)
sink("/dev/null")
wordcloud(a, scale=c(12,1), max.words=50, random.order=FALSE, rot.per=0.15, use.r.layout=FALSE, colors=brewer.pal(8, "Dark2"))
sink()
```
The list of the 10 last active threads on the forums:
```{r forums_threads_table, results='asis'}
data$last.post.date <- as.POSIXct(data$last_post_date, origin="1970-01-01")
threads.table <- head(data[,c('id', 'subject', 'last.post.date', 'last_post_id', 'replies', 'views')], 10)
threads.table$subject <- paste('', threads.table$subject, '', sep='')
threads.table$last.post.date <- as.character(threads.table$last.post.date)
names(threads.table) <- c('ID', 'Subject', 'Last post date', 'Last post author', 'Replies', 'Views')
print(
xtable(threads.table,
caption = paste('10 last active threads on', project_id, 'forum.', sep=" "),
digits=0, align="lllllll"), type="html",
html.table.attributes='class="table table-striped"',
caption.placement='bottom',
include.rownames=FALSE,
sanitize.text.function=function(x) { x }
)
```