{"action":"created","comment":{"url":"https://api.github.com/repos/dgrtwo/broom/pulls/comments/37008665","id":37008665,"diff_hunk":"@@ -0,0 +1,198 @@\n+#' Tidying methods for an exponential random graph model\n+#'\n+#' These methods tidy the coefficients of an exponential random graph model\n+#' estimated with the \\pkg{ergm} package into a summary, and construct\n+#' a one-row glance of the model's statistics. The methods should work with\n+#' any model that conforms to the \\pkg{ergm} class, such as those\n+#' produced from weighted networks by the \\pkg{ergm.count} package.\n+#'\n+#' @return All tidying methods return a \\code{data.frame} without rownames.\n+#' The structure depends on the method chosen.\n+#'\n+#' @references Hunter DR, Handcock MS, Butts CT, Goodreau SM, Morris M (2008b).\n+#' \\pkg{ergm}: A Package to Fit, Simulate and Diagnose Exponential-Family \n+#' Models for Networks. \\emph{Journal of Statistical Software}, 24(3). \n+#' \\url{http://www.jstatsoft.org/v24/i03/}.\n+#' \n+#' @seealso \\code{\\link[ergm]{ergm}}, \n+#' \\code{\\link[ergm]{control.ergm}}, \n+#' \\code{\\link[ergm]{summary.ergm}}\n+#'\n+#' @name ergm_tidiers\n+#'\n+#' @param x an \\pkg{ergm} object\n+#' @examples\n+#'\n+#' if (require(\"ergm\")) {\n+#'     # Using the same example as the ergm package\n+#'     library(ergm)\n+#'\n+#'     # Load the Florentine marriage network data\n+#'     data(florentine)\n+#'\n+#'     # Fit a model where the propensity to form ties between\n+#'     # families depends on the absolute difference in wealth\n+#'     gest <- ergm(flomarriage ~ edges + absdiff(\"wealth\"))\n+#'\n+#'     # Show terms, coefficient estimates and errors\n+#'     tidy(gest)\n+#'\n+#'     # Show coefficients as odds ratios with a 99% CI\n+#'     tidy(gest, exponentiate = TRUE, conf.int = TRUE, conf.level = 0.99)\n+#'\n+#'     # Take a look at likelihood measures and other\n+#'     # control parameters used during MCMC estimation\n+#'     glance(gest)\n+#'     glance(gest, deviance = TRUE)\n+#'     glance(gest, mcmc = TRUE)\n+#' }\n+NULL\n+\n+#' @rdname ergm_tidiers\n+#'\n+#' @param conf.int whether to include a confidence interval\n+#' @param conf.level confidence level of the interval, used only if\n+#' \\code{conf.int=TRUE}\n+#' @param exponentiate whether to exponentiate the coefficient estimates\n+#' and confidence intervals\n+#' @param quick whether to compute a smaller and faster version, containing\n+#' only the \\code{term} and \\code{estimate} columns.\n+#'\n+#' @details There is no \\code{augment} method for \\pkg{ergm} objects.\n+#'\n+#' @return \\code{tidy.ergm} returns one row for each coefficient, with five columns:\n+#'   \\item{term}{The term in the model being estimated and tested}\n+#'   \\item{estimate}{The estimated coefficient}\n+#'   \\item{std.error}{The standard error}\n+#'   \\item{mcmc.error}{The MCMC error}\n+#'   \\item{p.value}{The two-sided p-value}\n+#'\n+#' If \\code{conf.int=TRUE}, it also includes columns for \\code{conf.low} and\n+#' \\code{conf.high}.\n+#'\n+#' @export\n+tidy.ergm <- function(x, conf.int = FALSE, conf.level = .95,\n+                      exponentiate = FALSE, quick = FALSE, ...) {\n+    if (quick) {\n+        co <- x$coef\n+        ret <- data.frame(term = names(co), estimate = unname(co))\n+        return(ret)\n+    }\n+    co <- ergm::summary.ergm(x, ...)$coefs\n+    \n+    nn <- c(\"estimate\", \"std.error\", \"mcmc.error\", \"p.value\")\n+    if (inherits(co, \"listof\")) {\n+        # multiple response variables\n+        ret <- plyr::ldply(co, fix_data_frame, nn[1:ncol(co[[1]])],\n+                           .id = \"response\")\n+        ret$response <- stringr::str_replace(ret$response, \"Response \", \"\")\n+    } else {\n+        ret <- fix_data_frame(co, nn[1:ncol(co)])\n+    }\n+    \n+    process_ergm(ret, x, conf.int = conf.int, conf.level = conf.level,\n+                 exponentiate = exponentiate)\n+}\n+\n+#' @rdname ergm_tidiers\n+#'\n+#' @param deviance whether to report null and residual deviance for the model,\n+#' along with degrees of freedom; defaults to \\code{FALSE}\n+#' @param mcmc whether to report MCMC interval, burn-in and sample size used to\n+#' estimate the model; defaults to \\code{FALSE}\n+#' @param ... extra arguments passed to \\code{\\link[ergm]{summary.ergm}}\n+#'\n+#' @return \\code{glance.ergm} returns a one-row data.frame with the columns\n+#'   \\item{independence}{Whether the model assumed dyadic independence}\n+#'   \\item{iterations}{The number of iterations performed before convergence}\n+#'   \\item{logLik}{If applicable, the log-likelihood associated with the model}\n+#'   \\item{AIC}{The Akaike Information Criterion}\n+#'   \\item{BIC}{The Bayesian Information Criterion}\n+#'\n+#' If \\code{deviance=TRUE}, and if the model supports it, the\n+#' data frame will also contain the columns\n+#'   \\item{null.deviance}{The null deviance of the model}\n+#'   \\item{df.null}{The degrees of freedom of the null deviance}\n+#'   \\item{residual.deviance}{The residual deviance of the model}\n+#'   \\item{df.residual}{The degrees of freedom of the residual deviance}\n+#'\n+#' Last, if \\code{mcmc=TRUE}, the data frame will also contain\n+#' the columns\n+#'   \\item{MCMC.interval}{The interval used during MCMC estimation}\n+#'   \\item{MCMC.burnin}{The burn-in period of the MCMC estimation}\n+#'   \\item{MCMC.samplesize}{The sample size used during MCMC estimation}\n+#'\n+#' @export\n+glance.ergm <- function(x, deviance = FALSE, mcmc = FALSE, ...) {\n+    # will show appropriate warnings about standard errors, pseudolikelihood etc.\n+    s <- ergm::summary.ergm(x, ...)\n+    # dyadic (in)dependence and number of MCMLE iterations\n+    ret <- data.frame(independence = s$independence, iterations = x$iterations)\n+    # log-likelihood\n+    ret$logLik <- tryCatch(as.numeric(ergm::logLik.ergm(x)), error = function(e) NULL)\n+    # null and residual deviance\n+    s <- s$devtable\n+    if (deviance & length(s) > 0) {\n+        # dirty, but recomputing the logLik table would require much more effort\n+        # that would add a dependency to the network package (for the dyad count)\n+        ret$null.deviance <- gsub(\"(.*):\\\\s+(.*?)\\\\s+(.*)\", \"\\\\2\", s[2])\n+        ret$null.deviance <- as.numeric(ret$null.deviance)\n+        ret$df.null <- gsub(\"(.*)\\\\s+on\\\\s+(.*?)\\\\s+(.*)\", \"\\\\2\", s[2])\n+        ret$df.null <- as.numeric(ret$df.null)\n+        ret$residual.deviance <- gsub(\"(.*):\\\\s+(.*?)\\\\s+(.*)\", \"\\\\2\", s[3])\n+        ret$residual.deviance <- as.numeric(ret$residual.deviance)\n+        ret$df.residual <- gsub(\"(.*)\\\\s+on\\\\s+(.*?)\\\\s+(.*)\", \"\\\\2\", s[3])\n+        ret$df.residual <- as.numeric(ret$df.residual)\n+    }\n+    \n+    # AIC and BIC\n+    ret$AIC <- tryCatch(stats::AIC(x), error = function(e) NULL)\n+    ret$BIC <- tryCatch(stats::BIC(x), error = function(e) NULL)\n+    \n+    if (mcmc) {\n+        ret <- cbind(ret, data.frame(\n+            MCMC.interval = x$control$MCMC.interval,\n+            MCMC.burnin = x$control$MCMC.burnin,\n+            MCMC.samplesize = x$control$MCMC.samplesize))\n+    }\n+    \n+    ret <- unrowname(ret)\n+    ret\n+}\n+\n+#' helper function to process a tidied ergm object\n+#'\n+#' Optionally exponentiates the coefficients, and optionally adds\n+#' a confidence interval, to a tidied ergm object.\n+#'\n+#' @param ret data frame with a tidied version of a coefficient matrix\n+#' @param x an \"ergm\" object\n+#' @param conf.int whether to include a confidence interval\n+#' @param conf.level confidence level of the interval, used only if\n+#' \\code{conf.int=TRUE}\n+#' @param exponentiate whether to exponentiate the coefficient estimates\n+#' and confidence intervals (typical for logistic regression)\n+process_ergm <- function(ret, x, conf.int = FALSE, conf.level = .95,\n+                         exponentiate = FALSE) {\n+    if (exponentiate) {\n+        # save transformation function for use on confidence interval\n+        if (is.null(x$glm) ||","path":"R/ergm_tidiers.R","position":179,"original_position":179,"commit_id":"df2686eb20b33ade69fb1e52e3f411555f0a6a11","original_commit_id":"df2686eb20b33ade69fb1e52e3f411555f0a6a11","user":{"login":"briatte","id":322533,"avatar_url":"https://avatars.githubusercontent.com/u/322533?v=3","gravatar_id":"","url":"https://api.github.com/users/briatte","html_url":"https://github.com/briatte","followers_url":"https://api.github.com/users/briatte/followers","following_url":"https://api.github.com/users/briatte/following{/other_user}","gists_url":"https://api.github.com/users/briatte/gists{/gist_id}","starred_url":"https://api.github.com/users/briatte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/briatte/subscriptions","organizations_url":"https://api.github.com/users/briatte/orgs","repos_url":"https://api.github.com/users/briatte/repos","events_url":"https://api.github.com/users/briatte/events{/privacy}","received_events_url":"https://api.github.com/users/briatte/received_events","type":"User","site_admin":false},"body":"This check is probably useless here.","created_at":"2015-08-13T18:30:34Z","updated_at":"2015-08-13T18:30:34Z","html_url":"https://github.com/dgrtwo/broom/pull/70#discussion_r37008665","pull_request_url":"https://api.github.com/repos/dgrtwo/broom/pulls/70","_links":{"self":{"href":"https://api.github.com/repos/dgrtwo/broom/pulls/comments/37008665"},"html":{"href":"https://github.com/dgrtwo/broom/pull/70#discussion_r37008665"},"pull_request":{"href":"https://api.github.com/repos/dgrtwo/broom/pulls/70"}}},"pull_request":{"url":"https://api.github.com/repos/dgrtwo/broom/pulls/70","id":42382827,"html_url":"https://github.com/dgrtwo/broom/pull/70","diff_url":"https://github.com/dgrtwo/broom/pull/70.diff","patch_url":"https://github.com/dgrtwo/broom/pull/70.patch","issue_url":"https://api.github.com/repos/dgrtwo/broom/issues/70","number":70,"state":"open","locked":false,"title":"ergm_tidiers","user":{"login":"briatte","id":322533,"avatar_url":"https://avatars.githubusercontent.com/u/322533?v=3","gravatar_id":"","url":"https://api.github.com/users/briatte","html_url":"https://github.com/briatte","followers_url":"https://api.github.com/users/briatte/followers","following_url":"https://api.github.com/users/briatte/following{/other_user}","gists_url":"https://api.github.com/users/briatte/gists{/gist_id}","starred_url":"https://api.github.com/users/briatte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/briatte/subscriptions","organizations_url":"https://api.github.com/users/briatte/orgs","repos_url":"https://api.github.com/users/briatte/repos","events_url":"https://api.github.com/users/briatte/events{/privacy}","received_events_url":"https://api.github.com/users/briatte/received_events","type":"User","site_admin":false},"body":"Adds `tidy` and `glance` methods for `ergm` objects produced by the `ergm` package. There is no obvious way to `augment` the output of an `ergm` fit, so the method is left.\n\n- The `tidy` function behaves like the same method for `lm`.\n- The `glance` function behaves more or less like the same method for `glm`, and also covers basic MCMC settings (as an option).\n\nI have tried to maintain consistency with names used elsewhere in the package, e.g. `AIC` and `BIC` are in uppercase, `df.residual` refers to the degrees of freedom for residual deviance, etc. I used the documentation from `lm_tidiers.R` to create my own.\n\nSuggestion: my code computes _z_-scores in order to compute the confidence interval at any confidence level; this should probably be a utility available for other package functions.\n","created_at":"2015-08-13T18:29:25Z","updated_at":"2015-08-13T18:30:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d0959421edf3806fc6dd9e2c32932f0e9f938e29","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dgrtwo/broom/pulls/70/commits","review_comments_url":"https://api.github.com/repos/dgrtwo/broom/pulls/70/comments","review_comment_url":"https://api.github.com/repos/dgrtwo/broom/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dgrtwo/broom/issues/70/comments","statuses_url":"https://api.github.com/repos/dgrtwo/broom/statuses/df2686eb20b33ade69fb1e52e3f411555f0a6a11","head":{"label":"briatte:master","ref":"master","sha":"df2686eb20b33ade69fb1e52e3f411555f0a6a11","user":{"login":"briatte","id":322533,"avatar_url":"https://avatars.githubusercontent.com/u/322533?v=3","gravatar_id":"","url":"https://api.github.com/users/briatte","html_url":"https://github.com/briatte","followers_url":"https://api.github.com/users/briatte/followers","following_url":"https://api.github.com/users/briatte/following{/other_user}","gists_url":"https://api.github.com/users/briatte/gists{/gist_id}","starred_url":"https://api.github.com/users/briatte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/briatte/subscriptions","organizations_url":"https://api.github.com/users/briatte/orgs","repos_url":"https://api.github.com/users/briatte/repos","events_url":"https://api.github.com/users/briatte/events{/privacy}","received_events_url":"https://api.github.com/users/briatte/received_events","type":"User","site_admin":false},"repo":{"id":40675082,"name":"broom","full_name":"briatte/broom","owner":{"login":"briatte","id":322533,"avatar_url":"https://avatars.githubusercontent.com/u/322533?v=3","gravatar_id":"","url":"https://api.github.com/users/briatte","html_url":"https://github.com/briatte","followers_url":"https://api.github.com/users/briatte/followers","following_url":"https://api.github.com/users/briatte/following{/other_user}","gists_url":"https://api.github.com/users/briatte/gists{/gist_id}","starred_url":"https://api.github.com/users/briatte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/briatte/subscriptions","organizations_url":"https://api.github.com/users/briatte/orgs","repos_url":"https://api.github.com/users/briatte/repos","events_url":"https://api.github.com/users/briatte/events{/privacy}","received_events_url":"https://api.github.com/users/briatte/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/briatte/broom","description":"Convert statistical analysis objects from R into tidy format","fork":true,"url":"https://api.github.com/repos/briatte/broom","forks_url":"https://api.github.com/repos/briatte/broom/forks","keys_url":"https://api.github.com/repos/briatte/broom/keys{/key_id}","collaborators_url":"https://api.github.com/repos/briatte/broom/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/briatte/broom/teams","hooks_url":"https://api.github.com/repos/briatte/broom/hooks","issue_events_url":"https://api.github.com/repos/briatte/broom/issues/events{/number}","events_url":"https://api.github.com/repos/briatte/broom/events","assignees_url":"https://api.github.com/repos/briatte/broom/assignees{/user}","branches_url":"https://api.github.com/repos/briatte/broom/branches{/branch}","tags_url":"https://api.github.com/repos/briatte/broom/tags","blobs_url":"https://api.github.com/repos/briatte/broom/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/briatte/broom/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/briatte/broom/git/refs{/sha}","trees_url":"https://api.github.com/repos/briatte/broom/git/trees{/sha}","statuses_url":"https://api.github.com/repos/briatte/broom/statuses/{sha}","languages_url":"https://api.github.com/repos/briatte/broom/languages","stargazers_url":"https://api.github.com/repos/briatte/broom/stargazers","contributors_url":"https://api.github.com/repos/briatte/broom/contributors","subscribers_url":"https://api.github.com/repos/briatte/broom/subscribers","subscription_url":"https://api.github.com/repos/briatte/broom/subscription","commits_url":"https://api.github.com/repos/briatte/broom/commits{/sha}","git_commits_url":"https://api.github.com/repos/briatte/broom/git/commits{/sha}","comments_url":"https://api.github.com/repos/briatte/broom/comments{/number}","issue_comment_url":"https://api.github.com/repos/briatte/broom/issues/comments{/number}","contents_url":"https://api.github.com/repos/briatte/broom/contents/{+path}","compare_url":"https://api.github.com/repos/briatte/broom/compare/{base}...{head}","merges_url":"https://api.github.com/repos/briatte/broom/merges","archive_url":"https://api.github.com/repos/briatte/broom/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/briatte/broom/downloads","issues_url":"https://api.github.com/repos/briatte/broom/issues{/number}","pulls_url":"https://api.github.com/repos/briatte/broom/pulls{/number}","milestones_url":"https://api.github.com/repos/briatte/broom/milestones{/number}","notifications_url":"https://api.github.com/repos/briatte/broom/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/briatte/broom/labels{/name}","releases_url":"https://api.github.com/repos/briatte/broom/releases{/id}","created_at":"2015-08-13T18:27:33Z","updated_at":"2015-08-13T18:27:33Z","pushed_at":"2015-08-13T18:28:51Z","git_url":"git://github.com/briatte/broom.git","ssh_url":"git@github.com:briatte/broom.git","clone_url":"https://github.com/briatte/broom.git","svn_url":"https://github.com/briatte/broom","homepage":null,"size":1398,"stargazers_count":0,"watchers_count":0,"language":"R","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dgrtwo:master","ref":"master","sha":"3ca0f20a9a610cae8e04e87473a67e6144188085","user":{"login":"dgrtwo","id":994718,"avatar_url":"https://avatars.githubusercontent.com/u/994718?v=3","gravatar_id":"","url":"https://api.github.com/users/dgrtwo","html_url":"https://github.com/dgrtwo","followers_url":"https://api.github.com/users/dgrtwo/followers","following_url":"https://api.github.com/users/dgrtwo/following{/other_user}","gists_url":"https://api.github.com/users/dgrtwo/gists{/gist_id}","starred_url":"https://api.github.com/users/dgrtwo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgrtwo/subscriptions","organizations_url":"https://api.github.com/users/dgrtwo/orgs","repos_url":"https://api.github.com/users/dgrtwo/repos","events_url":"https://api.github.com/users/dgrtwo/events{/privacy}","received_events_url":"https://api.github.com/users/dgrtwo/received_events","type":"User","site_admin":false},"repo":{"id":23932217,"name":"broom","full_name":"dgrtwo/broom","owner":{"login":"dgrtwo","id":994718,"avatar_url":"https://avatars.githubusercontent.com/u/994718?v=3","gravatar_id":"","url":"https://api.github.com/users/dgrtwo","html_url":"https://github.com/dgrtwo","followers_url":"https://api.github.com/users/dgrtwo/followers","following_url":"https://api.github.com/users/dgrtwo/following{/other_user}","gists_url":"https://api.github.com/users/dgrtwo/gists{/gist_id}","starred_url":"https://api.github.com/users/dgrtwo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgrtwo/subscriptions","organizations_url":"https://api.github.com/users/dgrtwo/orgs","repos_url":"https://api.github.com/users/dgrtwo/repos","events_url":"https://api.github.com/users/dgrtwo/events{/privacy}","received_events_url":"https://api.github.com/users/dgrtwo/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dgrtwo/broom","description":"Convert statistical analysis objects from R into tidy format","fork":false,"url":"https://api.github.com/repos/dgrtwo/broom","forks_url":"https://api.github.com/repos/dgrtwo/broom/forks","keys_url":"https://api.github.com/repos/dgrtwo/broom/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dgrtwo/broom/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dgrtwo/broom/teams","hooks_url":"https://api.github.com/repos/dgrtwo/broom/hooks","issue_events_url":"https://api.github.com/repos/dgrtwo/broom/issues/events{/number}","events_url":"https://api.github.com/repos/dgrtwo/broom/events","assignees_url":"https://api.github.com/repos/dgrtwo/broom/assignees{/user}","branches_url":"https://api.github.com/repos/dgrtwo/broom/branches{/branch}","tags_url":"https://api.github.com/repos/dgrtwo/broom/tags","blobs_url":"https://api.github.com/repos/dgrtwo/broom/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dgrtwo/broom/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dgrtwo/broom/git/refs{/sha}","trees_url":"https://api.github.com/repos/dgrtwo/broom/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dgrtwo/broom/statuses/{sha}","languages_url":"https://api.github.com/repos/dgrtwo/broom/languages","stargazers_url":"https://api.github.com/repos/dgrtwo/broom/stargazers","contributors_url":"https://api.github.com/repos/dgrtwo/broom/contributors","subscribers_url":"https://api.github.com/repos/dgrtwo/broom/subscribers","subscription_url":"https://api.github.com/repos/dgrtwo/broom/subscription","commits_url":"https://api.github.com/repos/dgrtwo/broom/commits{/sha}","git_commits_url":"https://api.github.com/repos/dgrtwo/broom/git/commits{/sha}","comments_url":"https://api.github.com/repos/dgrtwo/broom/comments{/number}","issue_comment_url":"https://api.github.com/repos/dgrtwo/broom/issues/comments{/number}","contents_url":"https://api.github.com/repos/dgrtwo/broom/contents/{+path}","compare_url":"https://api.github.com/repos/dgrtwo/broom/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dgrtwo/broom/merges","archive_url":"https://api.github.com/repos/dgrtwo/broom/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dgrtwo/broom/downloads","issues_url":"https://api.github.com/repos/dgrtwo/broom/issues{/number}","pulls_url":"https://api.github.com/repos/dgrtwo/broom/pulls{/number}","milestones_url":"https://api.github.com/repos/dgrtwo/broom/milestones{/number}","notifications_url":"https://api.github.com/repos/dgrtwo/broom/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dgrtwo/broom/labels{/name}","releases_url":"https://api.github.com/repos/dgrtwo/broom/releases{/id}","created_at":"2014-09-11T19:17:04Z","updated_at":"2015-08-11T17:59:54Z","pushed_at":"2015-08-13T18:29:25Z","git_url":"git://github.com/dgrtwo/broom.git","ssh_url":"git@github.com:dgrtwo/broom.git","clone_url":"https://github.com/dgrtwo/broom.git","svn_url":"https://github.com/dgrtwo/broom","homepage":null,"size":1398,"stargazers_count":261,"watchers_count":261,"language":"R","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":44,"mirror_url":null,"open_issues_count":22,"forks":44,"open_issues":22,"watchers":261,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dgrtwo/broom/pulls/70"},"html":{"href":"https://github.com/dgrtwo/broom/pull/70"},"issue":{"href":"https://api.github.com/repos/dgrtwo/broom/issues/70"},"comments":{"href":"https://api.github.com/repos/dgrtwo/broom/issues/70/comments"},"review_comments":{"href":"https://api.github.com/repos/dgrtwo/broom/pulls/70/comments"},"review_comment":{"href":"https://api.github.com/repos/dgrtwo/broom/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dgrtwo/broom/pulls/70/commits"},"statuses":{"href":"https://api.github.com/repos/dgrtwo/broom/statuses/df2686eb20b33ade69fb1e52e3f411555f0a6a11"}}}}