add analysis_wilcoxon
This commit is contained in:
parent
235076bd5e
commit
c3856d0242
|
|
@ -0,0 +1,310 @@
|
|||
# aim: analysis two time points using ITS method
|
||||
# date: 2021-05-29
|
||||
# author: zxh
|
||||
|
||||
library(RMySQL)
|
||||
library(yaml)
|
||||
library(plyr)
|
||||
library(pROC)
|
||||
library("rjson")
|
||||
library("stringr")
|
||||
require(lmerTest)
|
||||
library(dplyr)
|
||||
library(pscl)
|
||||
require(MASS)
|
||||
|
||||
categorical_factors = c('has_goal', 'freelancer', 'company_null', 'email_null', 'isEmployee', 'isBountyHunter', 'isCampusExpert', 'isDeveloperProgramMember', 'isGitHubStar', 'isHireable', 'isSiteAdmin', 'location_null', 'twitterUsername_null', "other_way", "intervention")
|
||||
|
||||
convertData_type <- function(df) {
|
||||
for (coln in colnames(df)) {
|
||||
if (coln %in% categorical_factors) {
|
||||
df[[coln]] = as.factor(df[[coln]]) # do not convert to logical factor
|
||||
}
|
||||
}
|
||||
df
|
||||
}
|
||||
|
||||
dbConfig <- yaml.load_file('config.yaml')
|
||||
db_user <- dbConfig$mysql$user
|
||||
db_password <- dbConfig$mysql$passwd
|
||||
db_name <- dbConfig$mysql$db
|
||||
db_host <- dbConfig$mysql$host # for local access
|
||||
db_port <- as.numeric(dbConfig$mysql$port)
|
||||
conn <- dbConnect(MySQL(), user = db_user, password = db_password,
|
||||
dbname = db_name, host = db_host, port = db_port)
|
||||
q = "select * from middle_data_its"
|
||||
rs <- dbSendQuery(conn, q)
|
||||
df <- fetch(rs, n = -1)
|
||||
|
||||
rmout = function(df) {
|
||||
df = df[!(df[["month_index"]]==0),]
|
||||
return(df)
|
||||
}
|
||||
|
||||
df = rmout(df)
|
||||
|
||||
###########
|
||||
#### 1. mid time: sponsor account create, num commits
|
||||
df_sponsor_account_create_time = df[(df[['mid_time_point_type']]=="sponsor_account_create_time"),]
|
||||
|
||||
df_sponsor_account_create_time = convertData_type(df_sponsor_account_create_time)
|
||||
df_sponsor_account_create_time$has_goal = relevel(df_sponsor_account_create_time$has_goal, ref = "0")
|
||||
df_sponsor_account_create_time$company_null = relevel(df_sponsor_account_create_time$company_null, ref = "1")
|
||||
df_sponsor_account_create_time$email_null = relevel(df_sponsor_account_create_time$email_null, ref = "1")
|
||||
df_sponsor_account_create_time$isHireable = relevel(df_sponsor_account_create_time$isHireable, ref = "0")
|
||||
df_sponsor_account_create_time$location_null = relevel(df_sponsor_account_create_time$location_null, ref = "1")
|
||||
df_sponsor_account_create_time$other_way = relevel(df_sponsor_account_create_time$other_way, ref = "0")
|
||||
df_sponsor_account_create_time$intervention = relevel(df_sponsor_account_create_time$intervention, ref = "0")
|
||||
|
||||
m_commit_num_sponsor_account_create_time = lmer(
|
||||
formula=scale(log(commit_num+0.5))~
|
||||
scale(log(history_commit_num+0.5)) +
|
||||
# scale(log(history_pr_num+0.5)) +
|
||||
# scale(log(history_issue_num+0.5)) +
|
||||
scale(log(history_discussion_num+0.5)) +
|
||||
scale(log(history_sponsored_num+0.5)) +
|
||||
scale(log(history_star_num+0.5)) +
|
||||
# scale(log(min_tier+0.5)) +
|
||||
# scale(log(max_tier+0.5)) +
|
||||
has_goal +
|
||||
other_way +
|
||||
company_null +
|
||||
# email_null +
|
||||
isHireable +
|
||||
# location_null +
|
||||
time +
|
||||
intervention +
|
||||
time_after_intervention +
|
||||
(1|login),
|
||||
verbose=TRUE,
|
||||
data=df_sponsor_account_create_time
|
||||
)
|
||||
|
||||
car::vif(m_commit_num_sponsor_account_create_time)
|
||||
library(MuMIn)
|
||||
r.squaredGLMM(m_commit_num_sponsor_account_create_time)
|
||||
|
||||
car::Anova(m_commit_num_sponsor_account_create_time, type="II")
|
||||
|
||||
|
||||
|
||||
############
|
||||
### 2. mid time: sponsor account create, discussion num
|
||||
m_discussion_num_sponsor_account_create_time = lmer(
|
||||
formula=scale(log(discussion_num+0.5))~
|
||||
scale(log(history_commit_num+0.5)) +
|
||||
# scale(log(history_pr_num+0.5)) +
|
||||
# scale(log(history_issue_num+0.5)) +
|
||||
scale(log(history_discussion_num+0.5)) +
|
||||
scale(log(history_sponsored_num+0.5)) +
|
||||
scale(log(history_star_num+0.5)) +
|
||||
# scale(log(min_tier+0.5)) +
|
||||
# scale(log(max_tier+0.5)) +
|
||||
has_goal +
|
||||
other_way +
|
||||
company_null +
|
||||
# email_null +
|
||||
isHireable +
|
||||
# location_null +
|
||||
time +
|
||||
intervention +
|
||||
time_after_intervention +
|
||||
(1|login),
|
||||
verbose=TRUE,
|
||||
data=df_sponsor_account_create_time
|
||||
)
|
||||
|
||||
car::vif(m_discussion_num_sponsor_account_create_time)
|
||||
library(MuMIn)
|
||||
r.squaredGLMM(m_discussion_num_sponsor_account_create_time)
|
||||
|
||||
car::Anova(m_discussion_num_sponsor_account_create_time, type="II")
|
||||
|
||||
|
||||
|
||||
##############
|
||||
### 3. mid time: first sponsored time, commit_num
|
||||
df_first_sponsored_create_time = df[(df[['mid_time_point_type']]=="first_sponsored_create_time"),]
|
||||
|
||||
df_first_sponsored_create_time = convertData_type(df_first_sponsored_create_time)
|
||||
df_first_sponsored_create_time$has_goal = relevel(df_first_sponsored_create_time$has_goal, ref = "0")
|
||||
df_first_sponsored_create_time$company_null = relevel(df_first_sponsored_create_time$company_null, ref = "1")
|
||||
df_first_sponsored_create_time$email_null = relevel(df_first_sponsored_create_time$email_null, ref = "1")
|
||||
df_first_sponsored_create_time$isHireable = relevel(df_first_sponsored_create_time$isHireable, ref = "0")
|
||||
df_first_sponsored_create_time$location_null = relevel(df_first_sponsored_create_time$location_null, ref = "1")
|
||||
df_first_sponsored_create_time$other_way = relevel(df_first_sponsored_create_time$other_way, ref = "0")
|
||||
df_first_sponsored_create_time$intervention = relevel(df_first_sponsored_create_time$intervention, ref = "0")
|
||||
|
||||
m_commit_num_first_sponsored_create_time = lmer(
|
||||
formula=scale(log(commit_num+0.5))~
|
||||
scale(log(history_commit_num+0.5)) +
|
||||
# scale(log(history_pr_num+0.5)) +
|
||||
# scale(log(history_issue_num+0.5)) +
|
||||
scale(log(history_discussion_num+0.5)) +
|
||||
# scale(log(history_sponsored_num+0.5)) +
|
||||
scale(log(history_star_num+0.5)) +
|
||||
# scale(log(min_tier+0.5)) +
|
||||
# scale(log(max_tier+0.5)) +
|
||||
has_goal +
|
||||
other_way +
|
||||
company_null +
|
||||
# email_null +
|
||||
isHireable +
|
||||
# location_null +
|
||||
time +
|
||||
intervention +
|
||||
time_after_intervention +
|
||||
(1|login),
|
||||
verbose=TRUE,
|
||||
data=df_first_sponsored_create_time
|
||||
)
|
||||
|
||||
car::vif(m_commit_num_first_sponsored_create_time)
|
||||
library(MuMIn)
|
||||
r.squaredGLMM(m_commit_num_first_sponsored_create_time)
|
||||
|
||||
car::Anova(m_commit_num_first_sponsored_create_time, type="II")
|
||||
|
||||
|
||||
#############
|
||||
## 4. mid time: first sponsored time, discussion num
|
||||
m_discussion_num_first_sponsored_create_time = lmer(
|
||||
formula=scale(log(discussion_num+0.5))~
|
||||
scale(log(history_commit_num+0.5)) +
|
||||
# scale(log(history_pr_num+0.5)) +
|
||||
# scale(log(history_issue_num+0.5)) +
|
||||
scale(log(history_discussion_num+0.5)) +
|
||||
# scale(log(history_sponsored_num+0.5)) +
|
||||
scale(log(history_star_num+0.5)) +
|
||||
# scale(log(min_tier+0.5)) +
|
||||
# scale(log(max_tier+0.5)) +
|
||||
has_goal +
|
||||
other_way +
|
||||
company_null +
|
||||
# email_null +
|
||||
isHireable +
|
||||
location_null +
|
||||
time +
|
||||
intervention +
|
||||
time_after_intervention +
|
||||
(1|login),
|
||||
verbose=TRUE,
|
||||
data=df_first_sponsored_create_time
|
||||
)
|
||||
|
||||
car::vif(m_discussion_num_first_sponsored_create_time)
|
||||
library(MuMIn)
|
||||
r.squaredGLMM(m_discussion_num_first_sponsored_create_time)
|
||||
|
||||
car::Anova(m_discussion_num_first_sponsored_create_time, type="II")
|
||||
|
||||
|
||||
|
||||
|
||||
##### print the result
|
||||
summary_m1 = as.data.frame(coef(summary(m_commit_num_sponsor_account_create_time)))
|
||||
summary_m3 = as.data.frame(coef(summary(m_discussion_num_sponsor_account_create_time)))
|
||||
summary_m2 = as.data.frame(coef(summary(m_commit_num_first_sponsored_create_time)))
|
||||
summary_m4 = as.data.frame(coef(summary(m_discussion_num_first_sponsored_create_time)))
|
||||
r2_m1 = r.squaredGLMM(m_commit_num_sponsor_account_create_time)
|
||||
r2_m3 = r.squaredGLMM(m_discussion_num_sponsor_account_create_time)
|
||||
r2_m2 = r.squaredGLMM(m_commit_num_first_sponsored_create_time)
|
||||
r2_m4 = r.squaredGLMM(m_discussion_num_first_sponsored_create_time)
|
||||
anova_m1 = car::Anova(m_commit_num_sponsor_account_create_time, type="II")
|
||||
anova_m3 = car::Anova(m_discussion_num_sponsor_account_create_time, type="II")
|
||||
anova_m2 = car::Anova(m_commit_num_first_sponsored_create_time, type="II")
|
||||
anova_m4 = car::Anova(m_discussion_num_first_sponsored_create_time, type="II")
|
||||
|
||||
library(stringi)
|
||||
add_0 = function(v) {
|
||||
ss = str_split(v, "\\.")[[1]]
|
||||
if(length(ss) == 1) {
|
||||
r = paste(ss[1], ".", stri_pad_right(0, 2, 0), sep="")
|
||||
} else {
|
||||
r = paste(ss[1], ".", stri_pad_right(ss[2], 2, 0), sep="")
|
||||
}
|
||||
return(r)
|
||||
}
|
||||
|
||||
print_estimate = function(est) {
|
||||
round_est = round(est, 2)
|
||||
round_est = add_0(as.character(round_est))
|
||||
if (startsWith(round_est, "-")) {
|
||||
return(round_est)
|
||||
} else {
|
||||
return(paste("\\,\\,\\,", round_est, sep=""))
|
||||
}
|
||||
}
|
||||
|
||||
print_star = function(p) {
|
||||
if (p < 0.001) {
|
||||
p = "***"
|
||||
} else if (p < 0.01) {
|
||||
p = "**\\,\\,\\,"
|
||||
} else if (p < 0.05) {
|
||||
p = "*\\,\\,\\,\\,\\,\\,"
|
||||
} else if (p < 0.1) {
|
||||
p = ".\\,\\,\\,\\,\\,\\,\\,"
|
||||
} else {
|
||||
p = "\\,\\,\\,\\,\\,\\,\\,\\,\\,"
|
||||
}
|
||||
return(p)
|
||||
}
|
||||
|
||||
# print the variance
|
||||
print_variance = function(variance){
|
||||
round_variance = round(variance, 2)
|
||||
if(round_variance >= 1000) {
|
||||
return(add_0(as.character(round_variance)))
|
||||
} else if (round_variance >= 100) {
|
||||
return(paste("\\,\\,\\,", add_0(as.character(round_variance)), sep=""))
|
||||
} else if (round_variance >= 10) {
|
||||
return(paste("\\,\\,\\,\\,\\,\\,", add_0(as.character(round_variance)), sep=""))
|
||||
} else {
|
||||
return(paste("\\,\\,\\,\\,\\,\\,\\,\\,\\,", add_0(as.character(round_variance)), sep=""))
|
||||
}
|
||||
}
|
||||
|
||||
print_err = function(err) {
|
||||
round_err = round(err, 2)
|
||||
round_err = add_0(as.character(round_err))
|
||||
return(paste("(", round_err, ")", sep=""))
|
||||
}
|
||||
|
||||
|
||||
lines = c()
|
||||
# 1. intercept
|
||||
lines = c(lines, paste("(Intercept) & $", print_estimate(summary_m1['(Intercept)', 1]), "^{", print_star(summary_m1['(Intercept)', 5]), "}", print_err(summary_m1['(Intercept)', 2]), "$ & & $", print_estimate(summary_m2['(Intercept)', 1]), "^{", print_star(summary_m2['(Intercept)', 5]), "}", print_err(summary_m2['(Intercept)', 2]), "$ & & $", print_estimate(summary_m3['(Intercept)', 1]), "^{", print_star(summary_m3['(Intercept)', 5]), "}", print_err(summary_m3['(Intercept)', 2]), "$ & & $", print_estimate(summary_m4['(Intercept)', 1]), "^{", print_star(summary_m4['(Intercept)', 5]), "}", print_err(summary_m4['(Intercept)', 2]), "$ & \\\\", sep=""))
|
||||
# 2. number of commits before
|
||||
lines = c(lines, paste("scale(log(\\emph{number of commits before} + 0.5)) & $", print_estimate(summary_m1['scale(log(history_commit_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(history_commit_num + 0.5))', 5]), "}", print_err(summary_m1['scale(log(history_commit_num + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(history_commit_num + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(history_commit_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(history_commit_num + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(history_commit_num + 0.5))', 5]), "}", print_err(summary_m2['scale(log(history_commit_num + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(history_commit_num + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(history_commit_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m3['scale(log(history_commit_num + 0.5))', 1]), "^{", print_star(summary_m3['scale(log(history_commit_num + 0.5))', 5]), "}", print_err(summary_m3['scale(log(history_commit_num + 0.5))', 2]), "$ & $", print_variance(anova_m3['scale(log(history_commit_num + 0.5))', 1]), "^{", print_star(anova_m3['scale(log(history_commit_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m4['scale(log(history_commit_num + 0.5))', 1]), "^{", print_star(summary_m4['scale(log(history_commit_num + 0.5))', 5]), "}", print_err(summary_m4['scale(log(history_commit_num + 0.5))', 2]), "$ & $", print_variance(anova_m4['scale(log(history_commit_num + 0.5))', 1]), "^{", print_star(anova_m4['scale(log(history_commit_num + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 3. number of discussions
|
||||
lines = c(lines, paste("scale(log(\\emph{number of discussions before} + 0.5)) & $", print_estimate(summary_m1['scale(log(history_discussion_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(history_discussion_num + 0.5))', 5]), "}", print_err(summary_m1['scale(log(history_discussion_num + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(history_discussion_num + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(history_discussion_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(history_discussion_num + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(history_discussion_num + 0.5))', 5]), "}", print_err(summary_m2['scale(log(history_discussion_num + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(history_discussion_num + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(history_discussion_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m3['scale(log(history_discussion_num + 0.5))', 1]), "^{", print_star(summary_m3['scale(log(history_discussion_num + 0.5))', 5]), "}", print_err(summary_m3['scale(log(history_discussion_num + 0.5))', 2]), "$ & $", print_variance(anova_m3['scale(log(history_discussion_num + 0.5))', 1]), "^{", print_star(anova_m3['scale(log(history_discussion_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m4['scale(log(history_discussion_num + 0.5))', 1]), "^{", print_star(summary_m4['scale(log(history_discussion_num + 0.5))', 5]), "}", print_err(summary_m4['scale(log(history_discussion_num + 0.5))', 2]), "$ & $", print_variance(anova_m4['scale(log(history_discussion_num + 0.5))', 1]), "^{", print_star(anova_m4['scale(log(history_discussion_num + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# # 4. number of sponsors
|
||||
lines = c(lines, paste("scale(log(\\emph{number of sponsors before} + 0.5)) & $", print_estimate(summary_m1['scale(log(history_sponsored_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(history_sponsored_num + 0.5))', 5]), "}", print_err(summary_m1['scale(log(history_sponsored_num + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(history_sponsored_num + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(history_sponsored_num + 0.5))', 3]), "}$ & & & $", print_estimate(summary_m3['scale(log(history_sponsored_num + 0.5))', 1]), "^{", print_star(summary_m3['scale(log(history_sponsored_num + 0.5))', 5]), "}", print_err(summary_m3['scale(log(history_sponsored_num + 0.5))', 2]), "$ & $", print_variance(anova_m3['scale(log(history_sponsored_num + 0.5))', 1]), "^{", print_star(anova_m3['scale(log(history_sponsored_num + 0.5))', 3]), "}$ & & \\\\", sep=""))
|
||||
# 5. number of stars
|
||||
lines = c(lines, paste("scale(log(\\emph{number of stars before} + 0.5)) & $", print_estimate(summary_m1['scale(log(history_star_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(history_star_num + 0.5))', 5]), "}", print_err(summary_m1['scale(log(history_star_num + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(history_star_num + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(history_star_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(history_star_num + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(history_star_num + 0.5))', 5]), "}", print_err(summary_m2['scale(log(history_star_num + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(history_star_num + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(history_star_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m3['scale(log(history_star_num + 0.5))', 1]), "^{", print_star(summary_m3['scale(log(history_star_num + 0.5))', 5]), "}", print_err(summary_m3['scale(log(history_star_num + 0.5))', 2]), "$ & $", print_variance(anova_m3['scale(log(history_star_num + 0.5))', 1]), "^{", print_star(anova_m3['scale(log(history_star_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m4['scale(log(history_star_num + 0.5))', 1]), "^{", print_star(summary_m4['scale(log(history_star_num + 0.5))', 5]), "}", print_err(summary_m4['scale(log(history_star_num + 0.5))', 2]), "$ & $", print_variance(anova_m4['scale(log(history_star_num + 0.5))', 1]), "^{", print_star(anova_m4['scale(log(history_star_num + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 6. has goal
|
||||
lines = c(lines, paste("\\emph{has goal} (TRUE) & $", print_estimate(summary_m1['has_goal1', 1]), "^{", print_star(summary_m1['has_goal1', 5]), "}", print_err(summary_m1['has_goal1', 2]), "$ & $", print_variance(anova_m1['has_goal', 1]), "^{", print_star(anova_m1['has_goal', 3]), "}$ & $", print_estimate(summary_m2['has_goal1', 1]), "^{", print_star(summary_m2['has_goal1', 5]), "}", print_err(summary_m2['has_goal1', 2]), "$ & $", print_variance(anova_m2['has_goal', 1]), "^{", print_star(anova_m2['has_goal', 3]), "}$ & $", print_estimate(summary_m3['has_goal1', 1]), "^{", print_star(summary_m3['has_goal1', 5]), "}", print_err(summary_m3['has_goal1', 2]), "$ & $", print_variance(anova_m3['has_goal', 1]), "^{", print_star(anova_m3['has_goal', 3]), "}$ & $", print_estimate(summary_m4['has_goal1', 1]), "^{", print_star(summary_m4['has_goal1', 5]), "}", print_err(summary_m4['has_goal1', 2]), "$ & $", print_variance(anova_m4['has_goal', 1]), "^{", print_star(anova_m4['has_goal', 3]), "}$ \\\\", sep=""))
|
||||
# 7. other way
|
||||
lines = c(lines, paste("\\emph{has other way} (TRUE) & $", print_estimate(summary_m1['other_way1', 1]), "^{", print_star(summary_m1['other_way1', 5]), "}", print_err(summary_m1['other_way1', 2]), "$ & $", print_variance(anova_m1['other_way', 1]), "^{", print_star(anova_m1['other_way', 3]), "}$ & $", print_estimate(summary_m2['other_way1', 1]), "^{", print_star(summary_m2['other_way1', 5]), "}", print_err(summary_m2['other_way1', 2]), "$ & $", print_variance(anova_m2['other_way', 1]), "^{", print_star(anova_m2['other_way', 3]), "}$ & $", print_estimate(summary_m3['other_way1', 1]), "^{", print_star(summary_m3['other_way1', 5]), "}", print_err(summary_m3['other_way1', 2]), "$ & $", print_variance(anova_m3['other_way', 1]), "^{", print_star(anova_m3['other_way', 3]), "}$ & $", print_estimate(summary_m4['other_way1', 1]), "^{", print_star(summary_m4['other_way1', 5]), "}", print_err(summary_m4['other_way1', 2]), "$ & $", print_variance(anova_m4['other_way', 1]), "^{", print_star(anova_m4['other_way', 3]), "}$ \\\\", sep=""))
|
||||
# 8. company null
|
||||
lines = c(lines, paste("\\emph{in company} (TRUE) & $", print_estimate(summary_m1['company_null0', 1]), "^{", print_star(summary_m1['company_null0', 5]), "}", print_err(summary_m1['company_null0', 2]), "$ & $", print_variance(anova_m1['company_null', 1]), "^{", print_star(anova_m1['company_null', 3]), "}$ & $", print_estimate(summary_m2['company_null0', 1]), "^{", print_star(summary_m2['company_null0', 5]), "}", print_err(summary_m2['company_null0', 2]), "$ & $", print_variance(anova_m2['company_null', 1]), "^{", print_star(anova_m2['company_null', 3]), "}$ & $", print_estimate(summary_m3['company_null0', 1]), "^{", print_star(summary_m3['company_null0', 5]), "}", print_err(summary_m3['company_null0', 2]), "$ & $", print_variance(anova_m3['company_null', 1]), "^{", print_star(anova_m3['company_null', 3]), "}$ & $", print_estimate(summary_m4['company_null0', 1]), "^{", print_star(summary_m4['company_null0', 5]), "}", print_err(summary_m4['company_null0', 2]), "$ & $", print_variance(anova_m4['company_null', 1]), "^{", print_star(anova_m4['company_null', 3]), "}$ \\\\", sep=""))
|
||||
# 9. isHireable
|
||||
lines = c(lines, paste("\\emph{is hireable} (TRUE) & $", print_estimate(summary_m1['isHireable1', 1]), "^{", print_star(summary_m1['isHireable1', 5]), "}", print_err(summary_m1['isHireable1', 2]), "$ & $", print_variance(anova_m1['isHireable', 1]), "^{", print_star(anova_m1['isHireable', 3]), "}$ & $", print_estimate(summary_m2['isHireable1', 1]), "^{", print_star(summary_m2['isHireable1', 5]), "}", print_err(summary_m2['isHireable1', 2]), "$ & $", print_variance(anova_m2['isHireable', 1]), "^{", print_star(anova_m2['isHireable', 3]), "}$ & $", print_estimate(summary_m3['isHireable1', 1]), "^{", print_star(summary_m3['isHireable1', 5]), "}", print_err(summary_m3['isHireable1', 2]), "$ & $", print_variance(anova_m3['isHireable', 1]), "^{", print_star(anova_m3['isHireable', 3]), "}$ & $", print_estimate(summary_m4['isHireable1', 1]), "^{", print_star(summary_m4['isHireable1', 5]), "}", print_err(summary_m4['isHireable1', 2]), "$ & $", print_variance(anova_m4['isHireable', 1]), "^{", print_star(anova_m4['isHireable', 3]), "}$ \\\\", sep=""))
|
||||
# 10. time
|
||||
lines = c(lines, paste("\\emph{time} & $", print_estimate(summary_m1['time', 1]), "^{", print_star(summary_m1['time', 5]), "}", print_err(summary_m1['time', 2]), "$ & $", print_variance(anova_m1['time', 1]), "^{", print_star(anova_m1['time', 3]), "}$ & $", print_estimate(summary_m2['time', 1]), "^{", print_star(summary_m2['time', 5]), "}", print_err(summary_m2['time', 2]), "$ & $", print_variance(anova_m2['time', 1]), "^{", print_star(anova_m2['time', 3]), "}$ & $", print_estimate(summary_m3['time', 1]), "^{", print_star(summary_m3['time', 5]), "}", print_err(summary_m3['time', 2]), "$ & $", print_variance(anova_m3['time', 1]), "^{", print_star(anova_m3['time', 3]), "}$ & $", print_estimate(summary_m4['time', 1]), "^{", print_star(summary_m4['time', 5]), "}", print_err(summary_m4['time', 2]), "$ & $", print_variance(anova_m4['time', 1]), "^{", print_star(anova_m4['time', 3]), "}$ \\\\", sep=""))
|
||||
# 11. intervention
|
||||
lines = c(lines, paste("\\emph{intervention} (TRUE) & $", print_estimate(summary_m1['intervention1', 1]), "^{", print_star(summary_m1['intervention1', 5]), "}", print_err(summary_m1['intervention1', 2]), "$ & $", print_variance(anova_m1['intervention', 1]), "^{", print_star(anova_m1['intervention', 3]), "}$ & $", print_estimate(summary_m2['intervention1', 1]), "^{", print_star(summary_m2['intervention1', 5]), "}", print_err(summary_m2['intervention1', 2]), "$ & $", print_variance(anova_m2['intervention', 1]), "^{", print_star(anova_m2['intervention', 3]), "}$ & $", print_estimate(summary_m3['intervention1', 1]), "^{", print_star(summary_m3['intervention1', 5]), "}", print_err(summary_m3['intervention1', 2]), "$ & $", print_variance(anova_m3['intervention', 1]), "^{", print_star(anova_m3['intervention', 3]), "}$ & $", print_estimate(summary_m4['intervention1', 1]), "^{", print_star(summary_m4['intervention1', 5]), "}", print_err(summary_m4['intervention1', 2]), "$ & $", print_variance(anova_m4['intervention', 1]), "^{", print_star(anova_m4['intervention', 3]), "}$ \\\\", sep=""))
|
||||
# 12. time after intervention
|
||||
lines = c(lines, paste("\\emph{time after intervention} & $", print_estimate(summary_m1['time_after_intervention', 1]), "^{", print_star(summary_m1['time_after_intervention', 5]), "}", print_err(summary_m1['time_after_intervention', 2]), "$ & $", print_variance(anova_m1['time_after_intervention', 1]), "^{", print_star(anova_m1['time_after_intervention', 3]), "}$ & $", print_estimate(summary_m2['time_after_intervention', 1]), "^{", print_star(summary_m2['time_after_intervention', 5]), "}", print_err(summary_m2['time_after_intervention', 2]), "$ & $", print_variance(anova_m2['time_after_intervention', 1]), "^{", print_star(anova_m2['time_after_intervention', 3]), "}$ & $", print_estimate(summary_m3['time_after_intervention', 1]), "^{", print_star(summary_m3['time_after_intervention', 5]), "}", print_err(summary_m3['time_after_intervention', 2]), "$ & $", print_variance(anova_m3['time_after_intervention', 1]), "^{", print_star(anova_m3['time_after_intervention', 3]), "}$ & $", print_estimate(summary_m4['time_after_intervention', 1]), "^{", print_star(summary_m4['time_after_intervention', 5]), "}", print_err(summary_m4['time_after_intervention', 2]), "$ & $", print_variance(anova_m4['time_after_intervention', 1]), "^{", print_star(anova_m4['time_after_intervention', 3]), "}$ \\\\", sep=""))
|
||||
|
||||
cat(paste(lines, "\n", sep=""))
|
||||
|
||||
nobs1 = nobs(m_commit_num_sponsor_account_create_time)
|
||||
nobs3 = nobs(m_discussion_num_sponsor_account_create_time)
|
||||
nobs2 = nobs(m_commit_num_first_sponsored_create_time)
|
||||
nobs4 = nobs(m_discussion_num_first_sponsored_create_time)
|
||||
|
||||
cat(paste("\\multicolumn{2}{c}{", nobs1, "} & \\multicolumn{2}{c}{", nobs2, "} & \\multicolumn{2}{c}{", nobs3, "} & \\multicolumn{2}{c}{", nobs4, "} \\\\", sep=""))
|
||||
cat(paste("\\multicolumn{2}{c}{", round(r2_m1[1, 'R2m'], 2), "} & \\multicolumn{2}{c}{", round(r2_m2[1, 'R2m'], 2), "} & \\multicolumn{2}{c}{", round(r2_m3[1, 'R2m'], 2), "} & \\multicolumn{2}{c}{", round(r2_m4[1, 'R2m'], 2), "} \\\\", sep=""))
|
||||
cat(paste("\\multicolumn{2}{c}{", round(r2_m1[1, 'R2c'], 2), "} & \\multicolumn{2}{c}{", round(r2_m2[1, 'R2c'], 2), "} & \\multicolumn{2}{c}{", round(r2_m3[1, 'R2c'], 2), "} & \\multicolumn{2}{c}{", round(r2_m4[1, 'R2c'], 2), "} \\\\", sep=""))
|
||||
|
|
@ -297,41 +297,41 @@ lines = c()
|
|||
# 1. intercept
|
||||
lines = c(lines, paste("(Intercept) & $", print_estimate(summary_m1['(Intercept)', 1]), "^{", print_star(summary_m1['(Intercept)', 4]), "}", print_err(summary_m1['(Intercept)', 2]), "$ & & $", print_estimate(summary_m2['(Intercept)', 1]), "^{", print_star(summary_m2['(Intercept)', 4]), "}", print_err(summary_m2['(Intercept)', 2]), "$ & \\\\", sep=""))
|
||||
# 2. user age
|
||||
lines = c(lines, paste("scale(log(\\emph{user age} + 0.5)) & $", print_estimate(summary_m1['scale(log(user_age + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(user_age + 0.5))', 4]), "}", print_err(summary_m1['scale(log(user_age + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(user_age + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(user_age + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(user_age + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(user_age + 0.5))', 4]), "}", print_err(summary_m2['scale(log(user_age + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(user_age + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(user_age + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{user age} + 0.5)) & $", print_estimate(summary_m1['scale(log(user_age + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(user_age + 0.5))', 4]), "}", print_err(summary_m1['scale(log(user_age + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(user_age + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(user_age + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(user_age + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(user_age + 0.5))', 4]), "}", print_err(summary_m2['scale(log(user_age + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(user_age + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(user_age + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 3. in company
|
||||
lines = c(lines, paste("\\emph{in company} (TRUE) & $", print_estimate(summary_m1['company_null0', 1]), "^{", print_star(summary_m1['company_null0', 4]), "}", print_err(summary_m1['company_null0', 2]), "$ & $", print_variance(anova_m1['company_null', 1]), "^{", print_star(anova_m1['company_null', 3]), "}$ & $", print_estimate(summary_m2['company_null0', 1]), "^{", print_star(summary_m1['company_null0', 4]), "}", print_err(summary_m2['company_null0', 2]), "$ & $", print_variance(anova_m2['company_null', 1]), "^{", print_star(anova_m2['company_null', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("\\emph{in company} (TRUE) & $", print_estimate(summary_m1['company_null0', 1]), "^{", print_star(summary_m1['company_null0', 4]), "}", print_err(summary_m1['company_null0', 2]), "$ & $", print_variance(anova_m1['company_null', 1]), "^{", print_star(anova_m1['company_null', 3]), "}$ & $", print_estimate(summary_m2['company_null0', 1]), "^{", print_star(summary_m2['company_null0', 4]), "}", print_err(summary_m2['company_null0', 2]), "$ & $", print_variance(anova_m2['company_null', 1]), "^{", print_star(anova_m2['company_null', 3]), "}$ \\\\", sep=""))
|
||||
# 4. has email
|
||||
lines = c(lines, paste("\\emph{has email} (TRUE) & $", print_estimate(summary_m1['email_null0', 1]), "^{", print_star(summary_m1['email_null0', 4]), "}", print_err(summary_m1['email_null0', 2]), "$ & $", print_variance(anova_m1['email_null', 1]), "^{", print_star(anova_m1['email_null', 3]), "}$ & $", print_estimate(summary_m2['email_null0', 1]), "^{", print_star(summary_m1['email_null0', 4]), "}", print_err(summary_m2['email_null0', 2]), "$ & $", print_variance(anova_m2['email_null', 1]), "^{", print_star(anova_m2['email_null', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("\\emph{has email} (TRUE) & $", print_estimate(summary_m1['email_null0', 1]), "^{", print_star(summary_m1['email_null0', 4]), "}", print_err(summary_m1['email_null0', 2]), "$ & $", print_variance(anova_m1['email_null', 1]), "^{", print_star(anova_m1['email_null', 3]), "}$ & $", print_estimate(summary_m2['email_null0', 1]), "^{", print_star(summary_m2['email_null0', 4]), "}", print_err(summary_m2['email_null0', 2]), "$ & $", print_variance(anova_m2['email_null', 1]), "^{", print_star(anova_m2['email_null', 3]), "}$ \\\\", sep=""))
|
||||
# 5. has location
|
||||
lines = c(lines, paste("\\emph{has location} (TRUE) & $", print_estimate(summary_m1['location_null0', 1]), "^{", print_star(summary_m1['location_null0', 4]), "}", print_err(summary_m1['location_null0', 2]), "$ & $", print_variance(anova_m1['location_null', 1]), "^{", print_star(anova_m1['location_null', 3]), "}$ & $", print_estimate(summary_m2['location_null0', 1]), "^{", print_star(summary_m1['location_null0', 4]), "}", print_err(summary_m2['location_null0', 2]), "$ & $", print_variance(anova_m2['location_null', 1]), "^{", print_star(anova_m2['location_null', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("\\emph{has location} (TRUE) & $", print_estimate(summary_m1['location_null0', 1]), "^{", print_star(summary_m1['location_null0', 4]), "}", print_err(summary_m1['location_null0', 2]), "$ & $", print_variance(anova_m1['location_null', 1]), "^{", print_star(anova_m1['location_null', 3]), "}$ & $", print_estimate(summary_m2['location_null0', 1]), "^{", print_star(summary_m2['location_null0', 4]), "}", print_err(summary_m2['location_null0', 2]), "$ & $", print_variance(anova_m2['location_null', 1]), "^{", print_star(anova_m2['location_null', 3]), "}$ \\\\", sep=""))
|
||||
# 6. is hireable
|
||||
lines = c(lines, paste("\\emph{is hireable} (TRUE) & $", print_estimate(summary_m1['isHireable1', 1]), "^{", print_star(summary_m1['isHireable1', 4]), "}", print_err(summary_m1['isHireable1', 2]), "$ & $", print_variance(anova_m1['isHireable', 1]), "^{", print_star(anova_m1['isHireable', 3]), "}$ & $", print_estimate(summary_m2['isHireable1', 1]), "^{", print_star(summary_m1['isHireable1', 4]), "}", print_err(summary_m2['isHireable1', 2]), "$ & $", print_variance(anova_m2['isHireable', 1]), "^{", print_star(anova_m2['isHireable', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("\\emph{is hireable} (TRUE) & $", print_estimate(summary_m1['isHireable1', 1]), "^{", print_star(summary_m1['isHireable1', 4]), "}", print_err(summary_m1['isHireable1', 2]), "$ & $", print_variance(anova_m1['isHireable', 1]), "^{", print_star(anova_m1['isHireable', 3]), "}$ & $", print_estimate(summary_m2['isHireable1', 1]), "^{", print_star(summary_m2['isHireable1', 4]), "}", print_err(summary_m2['isHireable1', 2]), "$ & $", print_variance(anova_m2['isHireable', 1]), "^{", print_star(anova_m2['isHireable', 3]), "}$ \\\\", sep=""))
|
||||
# 7. followers
|
||||
lines = c(lines, paste("scale(log(\\emph{followers} + 0.5)) & $", print_estimate(summary_m1['scale(log(followers + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(followers + 0.5))', 4]), "}", print_err(summary_m1['scale(log(followers + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(followers + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(followers + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(followers + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(followers + 0.5))', 4]), "}", print_err(summary_m2['scale(log(followers + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(followers + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(followers + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{followers} + 0.5)) & $", print_estimate(summary_m1['scale(log(followers + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(followers + 0.5))', 4]), "}", print_err(summary_m1['scale(log(followers + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(followers + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(followers + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(followers + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(followers + 0.5))', 4]), "}", print_err(summary_m2['scale(log(followers + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(followers + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(followers + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 8. followings
|
||||
lines = c(lines, paste("scale(log(\\emph{followings} + 0.5)) & $", print_estimate(summary_m1['scale(log(followings + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(followings + 0.5))', 4]), "}", print_err(summary_m1['scale(log(followings + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(followings + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(followings + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(followings + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(followings + 0.5))', 4]), "}", print_err(summary_m2['scale(log(followings + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(followings + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(followings + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{followings} + 0.5)) & $", print_estimate(summary_m1['scale(log(followings + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(followings + 0.5))', 4]), "}", print_err(summary_m1['scale(log(followings + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(followings + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(followings + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(followings + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(followings + 0.5))', 4]), "}", print_err(summary_m2['scale(log(followings + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(followings + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(followings + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 9. min tier
|
||||
lines = c(lines, paste("scale(log(\\emph{min tier} + 0.5)) & $", print_estimate(summary_m1['scale(log(min_tier + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(min_tier + 0.5))', 4]), "}", print_err(summary_m1['scale(log(min_tier + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(min_tier + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(min_tier + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(min_tier + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(min_tier + 0.5))', 4]), "}", print_err(summary_m2['scale(log(min_tier + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(min_tier + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(min_tier + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{min tier} + 0.5)) & $", print_estimate(summary_m1['scale(log(min_tier + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(min_tier + 0.5))', 4]), "}", print_err(summary_m1['scale(log(min_tier + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(min_tier + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(min_tier + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(min_tier + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(min_tier + 0.5))', 4]), "}", print_err(summary_m2['scale(log(min_tier + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(min_tier + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(min_tier + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 10. max tier
|
||||
lines = c(lines, paste("scale(log(\\emph{max tier} + 0.5)) & $", print_estimate(summary_m1['scale(log(max_tier + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(max_tier + 0.5))', 4]), "}", print_err(summary_m1['scale(log(max_tier + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(max_tier + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(max_tier + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(max_tier + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(max_tier + 0.5))', 4]), "}", print_err(summary_m2['scale(log(max_tier + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(max_tier + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(max_tier + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{max tier} + 0.5)) & $", print_estimate(summary_m1['scale(log(max_tier + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(max_tier + 0.5))', 4]), "}", print_err(summary_m1['scale(log(max_tier + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(max_tier + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(max_tier + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(max_tier + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(max_tier + 0.5))', 4]), "}", print_err(summary_m2['scale(log(max_tier + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(max_tier + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(max_tier + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 11. has goal
|
||||
lines = c(lines, paste("\\emph{has goal} (TRUE) & $", print_estimate(summary_m1['has_goal1', 1]), "^{", print_star(summary_m1['has_goal1', 4]), "}", print_err(summary_m1['has_goal1', 2]), "$ & $", print_variance(anova_m1['has_goal', 1]), "^{", print_star(anova_m1['has_goal', 3]), "}$ & $", print_estimate(summary_m2['has_goal1', 1]), "^{", print_star(summary_m1['has_goal1', 4]), "}", print_err(summary_m2['has_goal1', 2]), "$ & $", print_variance(anova_m2['has_goal', 1]), "^{", print_star(anova_m2['has_goal', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("\\emph{has goal} (TRUE) & $", print_estimate(summary_m1['has_goal1', 1]), "^{", print_star(summary_m1['has_goal1', 4]), "}", print_err(summary_m1['has_goal1', 2]), "$ & $", print_variance(anova_m1['has_goal', 1]), "^{", print_star(anova_m1['has_goal', 3]), "}$ & $", print_estimate(summary_m2['has_goal1', 1]), "^{", print_star(summary_m2['has_goal1', 4]), "}", print_err(summary_m2['has_goal1', 2]), "$ & $", print_variance(anova_m2['has_goal', 1]), "^{", print_star(anova_m2['has_goal', 3]), "}$ \\\\", sep=""))
|
||||
# 12. has other way
|
||||
lines = c(lines, paste("\\emph{has other way} (TRUE) & $", print_estimate(summary_m1['other_way1', 1]), "^{", print_star(summary_m1['other_way1', 4]), "}", print_err(summary_m1['other_way1', 2]), "$ & $", print_variance(anova_m1['other_way', 1]), "^{", print_star(anova_m1['other_way', 3]), "}$ & $", print_estimate(summary_m2['other_way1', 1]), "^{", print_star(summary_m1['other_way1', 4]), "}", print_err(summary_m2['other_way1', 2]), "$ & $", print_variance(anova_m2['other_way', 1]), "^{", print_star(anova_m2['other_way', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("\\emph{has other way} (TRUE) & $", print_estimate(summary_m1['other_way1', 1]), "^{", print_star(summary_m1['other_way1', 4]), "}", print_err(summary_m1['other_way1', 2]), "$ & $", print_variance(anova_m1['other_way', 1]), "^{", print_star(anova_m1['other_way', 3]), "}$ & $", print_estimate(summary_m2['other_way1', 1]), "^{", print_star(summary_m2['other_way1', 4]), "}", print_err(summary_m2['other_way1', 2]), "$ & $", print_variance(anova_m2['other_way', 1]), "^{", print_star(anova_m2['other_way', 3]), "}$ \\\\", sep=""))
|
||||
# 13. user age after sponsor account
|
||||
lines = c(lines, paste("scale(log(\\emph{user age after sponsor account} + 0.5)) & $", print_estimate(summary_m1['scale(log(user_age_after_sponsor_account + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(user_age_after_sponsor_account + 0.5))', 4]), "}", print_err(summary_m1['scale(log(user_age_after_sponsor_account + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(user_age_after_sponsor_account + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(user_age_after_sponsor_account + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(user_age_after_sponsor_account + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(user_age_after_sponsor_account + 0.5))', 4]), "}", print_err(summary_m2['scale(log(user_age_after_sponsor_account + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(user_age_after_sponsor_account + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(user_age_after_sponsor_account + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{user age after sponsor account} + 0.5)) & $", print_estimate(summary_m1['scale(log(user_age_after_sponsor_account + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(user_age_after_sponsor_account + 0.5))', 4]), "}", print_err(summary_m1['scale(log(user_age_after_sponsor_account + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(user_age_after_sponsor_account + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(user_age_after_sponsor_account + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(user_age_after_sponsor_account + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(user_age_after_sponsor_account + 0.5))', 4]), "}", print_err(summary_m2['scale(log(user_age_after_sponsor_account + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(user_age_after_sponsor_account + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(user_age_after_sponsor_account + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 14. number of commits
|
||||
lines = c(lines, paste("scale(log(\\emph{number of commits} + 0.5)) & $", print_estimate(summary_m1['scale(log(after_sponsor_account_commit_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(after_sponsor_account_commit_num + 0.5))', 4]), "}", print_err(summary_m1['scale(log(after_sponsor_account_commit_num + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(after_sponsor_account_commit_num + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(after_sponsor_account_commit_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(after_sponsor_account_commit_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(after_sponsor_account_commit_num + 0.5))', 4]), "}", print_err(summary_m2['scale(log(after_sponsor_account_commit_num + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(after_sponsor_account_commit_num + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(after_sponsor_account_commit_num + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{number of commits} + 0.5)) & $", print_estimate(summary_m1['scale(log(after_sponsor_account_commit_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(after_sponsor_account_commit_num + 0.5))', 4]), "}", print_err(summary_m1['scale(log(after_sponsor_account_commit_num + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(after_sponsor_account_commit_num + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(after_sponsor_account_commit_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(after_sponsor_account_commit_num + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(after_sponsor_account_commit_num + 0.5))', 4]), "}", print_err(summary_m2['scale(log(after_sponsor_account_commit_num + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(after_sponsor_account_commit_num + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(after_sponsor_account_commit_num + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 15. number of discussion
|
||||
lines = c(lines, paste("scale(log(\\emph{number of discussions} + 0.5)) & $", print_estimate(summary_m1['scale(log(after_sponsor_account_discussion_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(after_sponsor_account_discussion_num + 0.5))', 4]), "}", print_err(summary_m1['scale(log(after_sponsor_account_discussion_num + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(after_sponsor_account_discussion_num + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(after_sponsor_account_discussion_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(after_sponsor_account_discussion_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(after_sponsor_account_discussion_num + 0.5))', 4]), "}", print_err(summary_m2['scale(log(after_sponsor_account_discussion_num + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(after_sponsor_account_discussion_num + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(after_sponsor_account_discussion_num + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{number of discussions} + 0.5)) & $", print_estimate(summary_m1['scale(log(after_sponsor_account_discussion_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(after_sponsor_account_discussion_num + 0.5))', 4]), "}", print_err(summary_m1['scale(log(after_sponsor_account_discussion_num + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(after_sponsor_account_discussion_num + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(after_sponsor_account_discussion_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(after_sponsor_account_discussion_num + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(after_sponsor_account_discussion_num + 0.5))', 4]), "}", print_err(summary_m2['scale(log(after_sponsor_account_discussion_num + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(after_sponsor_account_discussion_num + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(after_sponsor_account_discussion_num + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 16. sum star number
|
||||
lines = c(lines, paste("scale(log(\\emph{sum star number} + 0.5)) & $", print_estimate(summary_m1['scale(log(sum_star_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(sum_star_num + 0.5))', 4]), "}", print_err(summary_m1['scale(log(sum_star_num + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(sum_star_num + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(sum_star_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(sum_star_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(sum_star_num + 0.5))', 4]), "}", print_err(summary_m2['scale(log(sum_star_num + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(sum_star_num + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(sum_star_num + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{sum star number} + 0.5)) & $", print_estimate(summary_m1['scale(log(sum_star_num + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(sum_star_num + 0.5))', 4]), "}", print_err(summary_m1['scale(log(sum_star_num + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(sum_star_num + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(sum_star_num + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(sum_star_num + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(sum_star_num + 0.5))', 4]), "}", print_err(summary_m2['scale(log(sum_star_num + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(sum_star_num + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(sum_star_num + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 17. sum top repository star number
|
||||
lines = c(lines, paste("scale(log(\\emph{sum top repository star number} + 0.5)) & $", print_estimate(summary_m1['scale(log(sum_top_proj_star + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(sum_top_proj_star + 0.5))', 4]), "}", print_err(summary_m1['scale(log(sum_top_proj_star + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(sum_top_proj_star + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(sum_top_proj_star + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(sum_top_proj_star + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(sum_top_proj_star + 0.5))', 4]), "}", print_err(summary_m2['scale(log(sum_top_proj_star + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(sum_top_proj_star + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(sum_top_proj_star + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{sum top repository star number} + 0.5)) & $", print_estimate(summary_m1['scale(log(sum_top_proj_star + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(sum_top_proj_star + 0.5))', 4]), "}", print_err(summary_m1['scale(log(sum_top_proj_star + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(sum_top_proj_star + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(sum_top_proj_star + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(sum_top_proj_star + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(sum_top_proj_star + 0.5))', 4]), "}", print_err(summary_m2['scale(log(sum_top_proj_star + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(sum_top_proj_star + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(sum_top_proj_star + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 18. introduction richness
|
||||
lines = c(lines, paste("scale(log(\\emph{introduction richness} + 0.5)) & $", print_estimate(summary_m1['scale(log(intro_complexity + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(intro_complexity + 0.5))', 4]), "}", print_err(summary_m1['scale(log(intro_complexity + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(intro_complexity + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(intro_complexity + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(intro_complexity + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(intro_complexity + 0.5))', 4]), "}", print_err(summary_m2['scale(log(intro_complexity + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(intro_complexity + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(intro_complexity + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{introduction richness} + 0.5)) & $", print_estimate(summary_m1['scale(log(intro_complexity + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(intro_complexity + 0.5))', 4]), "}", print_err(summary_m1['scale(log(intro_complexity + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(intro_complexity + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(intro_complexity + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(intro_complexity + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(intro_complexity + 0.5))', 4]), "}", print_err(summary_m2['scale(log(intro_complexity + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(intro_complexity + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(intro_complexity + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
# 19. number of dependents
|
||||
lines = c(lines, paste("scale(log(\\emph{number of dependents} + 0.5)) & $", print_estimate(summary_m1['scale(log(num_repo_dependents + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(num_repo_dependents + 0.5))', 4]), "}", print_err(summary_m1['scale(log(num_repo_dependents + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(num_repo_dependents + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(num_repo_dependents + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(num_repo_dependents + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(num_repo_dependents + 0.5))', 4]), "}", print_err(summary_m2['scale(log(num_repo_dependents + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(num_repo_dependents + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(num_repo_dependents + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
lines = c(lines, paste("scale(log(\\emph{number of dependents} + 0.5)) & $", print_estimate(summary_m1['scale(log(num_repo_dependents + 0.5))', 1]), "^{", print_star(summary_m1['scale(log(num_repo_dependents + 0.5))', 4]), "}", print_err(summary_m1['scale(log(num_repo_dependents + 0.5))', 2]), "$ & $", print_variance(anova_m1['scale(log(num_repo_dependents + 0.5))', 1]), "^{", print_star(anova_m1['scale(log(num_repo_dependents + 0.5))', 3]), "}$ & $", print_estimate(summary_m2['scale(log(num_repo_dependents + 0.5))', 1]), "^{", print_star(summary_m2['scale(log(num_repo_dependents + 0.5))', 4]), "}", print_err(summary_m2['scale(log(num_repo_dependents + 0.5))', 2]), "$ & $", print_variance(anova_m2['scale(log(num_repo_dependents + 0.5))', 1]), "^{", print_star(anova_m2['scale(log(num_repo_dependents + 0.5))', 3]), "}$ \\\\", sep=""))
|
||||
|
||||
cat(paste(lines, "\n", sep=""))
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
# aim: wilcoxon analysis
|
||||
# date: 2021-05-30
|
||||
# author: zxh
|
||||
|
||||
import pymysql, yaml, math, datetime, json
|
||||
from utils import *
|
||||
import seaborn as sns
|
||||
import pandas as pd
|
||||
from matplotlib import pyplot as plt
|
||||
import numpy as np
|
||||
import threading, queue # 多线程搜集数据
|
||||
|
||||
f = open('config.yaml', 'r')
|
||||
config = yaml.load(f.read(), Loader=yaml.BaseLoader)
|
||||
conn = connectMysqlDB(config, autocommit = True)
|
||||
cur = conn.cursor(pymysql.cursors.DictCursor)
|
||||
|
|
@ -358,7 +358,7 @@ class myThread(threading.Thread):
|
|||
self.q.task_done()
|
||||
|
||||
# gather all the infos for each user
|
||||
THREADNUM = 10
|
||||
THREADNUM = 100
|
||||
tasks = queue.Queue()
|
||||
for user in users:
|
||||
tasks.put(user)
|
||||
|
|
@ -367,4 +367,4 @@ for _ in range(THREADNUM):
|
|||
t.start()
|
||||
tasks.join()
|
||||
|
||||
print("finish")
|
||||
print("finish")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,200 @@
|
|||
# collect data for wilcoxon analysis
|
||||
# aim: collect the data for each sponsor time or sponsor account creation time before and after 15 days
|
||||
# date: 2021-05-30
|
||||
# author: zxh
|
||||
|
||||
import pymysql, yaml, math, datetime, json
|
||||
from utils import *
|
||||
import seaborn as sns
|
||||
import pandas as pd
|
||||
from matplotlib import pyplot as plt
|
||||
import numpy as np
|
||||
import threading, queue # 多线程搜集数据
|
||||
|
||||
f = open('config.yaml', 'r')
|
||||
config = yaml.load(f.read(), Loader=yaml.BaseLoader)
|
||||
conn = connectMysqlDB(config, autocommit = True)
|
||||
cur = conn.cursor(pymysql.cursors.DictCursor)
|
||||
|
||||
# read all the sponsors from database (0 sponsor, >=1 sponsor all considered)
|
||||
cur.execute("select login from github_sponsor_listing where deleted=0")
|
||||
users = cur.fetchall()
|
||||
users = [u["login"] for u in users]
|
||||
|
||||
cur.execute("select login from middle_data_wilcoxon")
|
||||
handled_users = cur.fetchall()
|
||||
handled_users = [u["login"] for u in handled_users]
|
||||
|
||||
users = list(set(users) - set(handled_users))
|
||||
|
||||
unstable_n = 15 # 前后多少天是不稳定时间
|
||||
|
||||
|
||||
|
||||
class myThread(threading.Thread):
|
||||
def __init__(self, q):
|
||||
threading.Thread.__init__(self)
|
||||
self.q = q
|
||||
self.conn = connectMysqlDB(config, autocommit = False)
|
||||
self.cur = self.conn.cursor(pymysql.cursors.DictCursor)
|
||||
|
||||
'''
|
||||
params: {
|
||||
login,
|
||||
mid_time_point,
|
||||
user_account_create_time,
|
||||
data_collection_time,
|
||||
which_time_sponsor
|
||||
}
|
||||
'''
|
||||
def collect_factors(self, params):
|
||||
|
||||
login = params['login']
|
||||
created_at = params['mid_time_point']
|
||||
user_account_create_time = params['user_account_create_time']
|
||||
data_collection_time = params['data_collection_time']
|
||||
which_time_sponsor = params['which_time_sponsor']
|
||||
|
||||
start_at = created_at - datetime.timedelta(days=unstable_n)
|
||||
end_at = created_at + datetime.timedelta(days=unstable_n)
|
||||
|
||||
results = [] # in which is the result
|
||||
|
||||
# before 15 days, after 15 days
|
||||
if (created_at - user_account_create_time).days < unstable_n or (data_collection_time - created_at).days < unstable_n:
|
||||
return results
|
||||
else:
|
||||
# 1. commit num
|
||||
self.cur.execute("select sum(contribution_count) as commit_num from github_user_commits_per_day where date>%s and date<%s and login=%s", (start_at, created_at, login))
|
||||
before_num = self.cur.fetchone()['commit_num']
|
||||
if before_num is None:
|
||||
before_num = 0
|
||||
else:
|
||||
before_num = int(before_num)
|
||||
|
||||
self.cur.execute("select sum(contribution_count) as commit_num from github_user_commits_per_day where date>%s and date<%s and login=%s", (created_at, end_at, login))
|
||||
after_num = self.cur.fetchone()['commit_num']
|
||||
if after_num is None:
|
||||
after_num = 0
|
||||
else:
|
||||
after_num = int(after_num)
|
||||
|
||||
results.append({
|
||||
"login": login,
|
||||
"created_at": created_at,
|
||||
"which_time_sponsor": which_time_sponsor,
|
||||
"before_num": before_num,
|
||||
"after_num": after_num,
|
||||
"activity_type": "commit",
|
||||
"start_at": start_at,
|
||||
"end_at": end_at
|
||||
})
|
||||
|
||||
# 2. discussion num
|
||||
self.cur.execute("select count(*) as issue_comment_num from github_issue_comment where created_at>%s and created_at<%s and login=%s", (start_at, created_at, login))
|
||||
issue_comment_num = self.cur.fetchone()['issue_comment_num']
|
||||
self.cur.execute("select count(*) as pr_comment_num from github_pr_comment where created_at>%s and created_at<%s and login=%s", (start_at, created_at, login))
|
||||
pr_comment_num = self.cur.fetchone()['pr_comment_num']
|
||||
self.cur.execute("select count(*) as commit_comment_num from github_commit_comment where created_at>%s and created_at<%s and login=%s", (start_at, created_at, login))
|
||||
commit_comment_num = self.cur.fetchone()['commit_comment_num']
|
||||
before_num = issue_comment_num + pr_comment_num + commit_comment_num
|
||||
|
||||
self.cur.execute("select count(*) as issue_comment_num from github_issue_comment where created_at>%s and created_at<%s and login=%s", (created_at, end_at, login))
|
||||
issue_comment_num = self.cur.fetchone()['issue_comment_num']
|
||||
self.cur.execute("select count(*) as pr_comment_num from github_pr_comment where created_at>%s and created_at<%s and login=%s", (created_at, end_at, login))
|
||||
pr_comment_num = self.cur.fetchone()['pr_comment_num']
|
||||
self.cur.execute("select count(*) as commit_comment_num from github_commit_comment where created_at>%s and created_at<%s and login=%s", (created_at, end_at, login))
|
||||
commit_comment_num = self.cur.fetchone()['commit_comment_num']
|
||||
after_num = issue_comment_num + pr_comment_num + commit_comment_num
|
||||
|
||||
results.append({
|
||||
"login": login,
|
||||
"created_at": created_at,
|
||||
"which_time_sponsor": which_time_sponsor,
|
||||
"before_num": before_num,
|
||||
"after_num": after_num,
|
||||
"activity_type": "discussion",
|
||||
"start_at": start_at,
|
||||
"end_at": end_at
|
||||
})
|
||||
|
||||
return results
|
||||
|
||||
def insert_dict(self, mydict, insert_table):
|
||||
placeholders = ', '.join(['%s']* len(mydict))
|
||||
columns = ', '.join(mydict.keys())
|
||||
insert_sql = "INSERT INTO %s ( %s ) VALUES ( %s )" % (insert_table, columns, placeholders)
|
||||
self.cur.execute(insert_sql, list(mydict.values()))
|
||||
|
||||
|
||||
def run(self):
|
||||
while(True):
|
||||
try:
|
||||
login = self.q.get(timeout=0)
|
||||
print("loop how many threads left: %d" % (self.q.qsize()))
|
||||
|
||||
'''
|
||||
params: {
|
||||
login,
|
||||
mid_time_point,
|
||||
user_account_create_time,
|
||||
data_collection_time,
|
||||
which_time_sponsor
|
||||
}
|
||||
'''
|
||||
|
||||
# 0.1 the data collection time
|
||||
collection_time = datetime.datetime.strptime("2021-01-23 11:24:27", "%Y-%m-%d %H:%M:%S")
|
||||
# 0.2 sponsor account creation time
|
||||
self.cur.execute("select created_at from github_sponsor_listing where login=%s", (login,))
|
||||
sponsor_account_createtime = self.cur.fetchone()['created_at']
|
||||
# 0.3 user account creation time
|
||||
self.cur.execute("select created_at from github_user where login=%s", (login,))
|
||||
user_account_createtime = self.cur.fetchone()['created_at']
|
||||
|
||||
params_list = []
|
||||
params_list.append({
|
||||
"login": login,
|
||||
"mid_time_point": sponsor_account_createtime,
|
||||
"user_account_create_time": user_account_createtime,
|
||||
"data_collection_time": collection_time,
|
||||
"which_time_sponsor": 0
|
||||
})
|
||||
|
||||
# all time of sponsor times
|
||||
self.cur.execute("select created_at from github_sponsorships_as_maintainer where login=%s order by created_at asc", (login,))
|
||||
sponsorship_created_ats = self.cur.fetchall()
|
||||
which_time_sponsor = 0
|
||||
for sponsorship_created_at in sponsorship_created_ats:
|
||||
created_at = sponsorship_created_at["created_at"]
|
||||
which_time_sponsor += 1
|
||||
params_list.append({
|
||||
"login": login,
|
||||
"mid_time_point": created_at,
|
||||
"user_account_create_time": user_account_createtime,
|
||||
"data_collection_time": collection_time,
|
||||
"which_time_sponsor": which_time_sponsor
|
||||
})
|
||||
|
||||
for params in params_list:
|
||||
results = self.collect_factors(params=params)
|
||||
for result in results:
|
||||
# insert db
|
||||
self.insert_dict(result, "middle_data_wilcoxon")
|
||||
self.conn.commit()
|
||||
|
||||
except queue.Empty:
|
||||
return
|
||||
self.q.task_done()
|
||||
|
||||
# gather all the infos for each user
|
||||
THREADNUM = 100
|
||||
tasks = queue.Queue()
|
||||
for user in users:
|
||||
tasks.put(user)
|
||||
for _ in range(THREADNUM):
|
||||
t = myThread(tasks)
|
||||
t.start()
|
||||
tasks.join()
|
||||
|
||||
print("finish")
|
||||
|
|
@ -58,7 +58,7 @@ class myThread(threading.Thread):
|
|||
|
||||
|
||||
|
||||
THREADNUM = 10
|
||||
THREADNUM = 70
|
||||
tasks = queue.Queue()
|
||||
for user in items:
|
||||
tasks.put(user)
|
||||
|
|
@ -67,4 +67,4 @@ for _ in range(THREADNUM):
|
|||
t.start()
|
||||
tasks.join()
|
||||
|
||||
print("finish")
|
||||
print("finish")
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue