Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
145 commits
Select commit Hold shift + click to select a range
96f54fb
R code for counting codes
mathprofcarrie Jan 2, 2023
dc87d39
gitignore
siwelwerd Jan 2, 2023
0c82aba
remove
siwelwerd Jan 2, 2023
20a28aa
Add coded data csv
siwelwerd Jan 2, 2023
8fde22c
Fix denominator
siwelwerd Jan 2, 2023
c6ab1de
Fix one row error
siwelwerd Jan 2, 2023
0db944d
Add example of counting a specific tag
siwelwerd Jan 2, 2023
d6270c5
R markdown file
siwelwerd Jan 3, 2023
9de52e4
Fix digits
siwelwerd Jan 3, 2023
b6ba86c
Tag counts
siwelwerd Jan 3, 2023
66137b5
Bucket labels in tag table
siwelwerd Jan 3, 2023
0a9ae2c
Remove cruft
siwelwerd Jan 3, 2023
04d69b6
Fix display digits
siwelwerd Jan 3, 2023
d750ed6
Sort tag table
siwelwerd Jan 3, 2023
197b136
Fix bucket name
siwelwerd Jan 3, 2023
3cc0149
Add Carrie's markdown file
mathprofcarrie Jan 3, 2023
11d6694
Add coincidence matrix
siwelwerd Jan 3, 2023
e70e255
Carrie updates
mathprofcarrie Jan 3, 2023
729ff96
Add explanantion of coincidence table
siwelwerd Jan 3, 2023
f0e6a4d
Get Carrie's Rmd to knit
siwelwerd Jan 3, 2023
3ce7421
Move cleaning step to CSV
siwelwerd Jan 3, 2023
1a55dbb
new time series, and added code analysis
mathprofcarrie Jan 4, 2023
162b638
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
mathprofcarrie Jan 4, 2023
6a9098c
used newer csv file for DisruptCoded & generated graphs
mathprofcarrie Jan 4, 2023
dc2b3d6
Working on a plot of all codes together & changed the allcodes.csv he…
mathprofcarrie Jan 4, 2023
d20fbc8
finished allcodesplot as png
mathprofcarrie Jan 4, 2023
20312d3
Add single bucket tweets
siwelwerd Jan 4, 2023
14d2d04
get tweets for a few codes
siwelwerd Jan 5, 2023
18cb979
Hypergraph of codes construction
siwelwerd Jun 26, 2023
7bb06f9
Add graph and eigenvector centrality
siwelwerd Jun 27, 2023
6418fa4
update
siwelwerd Jun 27, 2023
6b623dd
Add labels to drawing
siwelwerd Jun 27, 2023
ef09e3c
Clean up
siwelwerd Jun 27, 2023
d75cc14
Refactor to a more readable pandas method
siwelwerd Jun 27, 2023
3aa961b
Add Katz centrality
siwelwerd Jun 27, 2023
1e4aa40
Update Hypergraph of codes.ipynb
RachelRoca Jun 28, 2023
8cba014
Cluster detection
siwelwerd Jul 5, 2023
6456c9c
Bunch of stuff
RachelRoca Jul 5, 2023
6f523e1
Merge branch 'DAAAAMNSocialJustice:main' into main
RachelRoca Jul 5, 2023
4615c10
Merge pull request #2 from RachelRoca/main
siwelwerd Jul 5, 2023
3f61f34
Merge branch 'main' of https://github.com/RachelRoca/DAAAAMNdisruptjmm
RachelRoca Jul 5, 2023
ce46243
Merge branch 'DAAAAMNSocialJustice:main' into main
RachelRoca Jul 5, 2023
8ab1782
Merge pull request #3 from RachelRoca/main
siwelwerd Jul 5, 2023
754db50
Convert to igraph
siwelwerd Jul 6, 2023
b4cace2
Generate edge list csv
siwelwerd Jul 6, 2023
397f9e3
Correct edge list for Carrie
siwelwerd Jul 6, 2023
387e1ec
Comment code
siwelwerd Jul 6, 2023
e02df3f
Put community detection back in
siwelwerd Jul 6, 2023
d04ff9c
Create SocialNetwork.ipynb
RachelRoca Jul 6, 2023
e1abdc9
Clustering analysis on the graph (not hypergraph)
mathprofcarrie Jul 6, 2023
a104479
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
RachelRoca Jul 6, 2023
c4cdb13
Data cleaning
siwelwerd Jul 11, 2023
ba0a66f
Joe's stuff
siwelwerd Jul 14, 2023
9f4ea0b
Generate people edge list
siwelwerd Jul 25, 2023
09c04c0
Comment code
siwelwerd Jul 25, 2023
b02a1d8
Restore clustering file
siwelwerd Jul 25, 2023
834d472
Remove sinks
siwelwerd Jul 25, 2023
d42aae0
people network
mathprofcarrie Jul 25, 2023
d4fd4a5
adding centrality
mathprofcarrie Jul 25, 2023
f4cd26f
clusters/community detection
mathprofcarrie Jul 25, 2023
180c668
knitted html
mathprofcarrie Jul 25, 2023
7ee9651
Add time bins to people-edge-list.csv
siwelwerd Jul 25, 2023
1df584a
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
siwelwerd Jul 25, 2023
bafe243
in-degree/out-degree conversation
mathprofcarrie Jul 25, 2023
b3946ea
Codes by time period
siwelwerd Jul 25, 2023
8b6cd12
csv
siwelwerd Jul 25, 2023
4f556d4
Transpose
siwelwerd Jul 25, 2023
74c7906
Move info to all-data.csv
siwelwerd Jul 25, 2023
48c83a3
Better data cleaning
siwelwerd Jul 25, 2023
c8d926a
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
mathprofcarrie Jul 25, 2023
cc4aa96
Mention edge list
siwelwerd Jul 26, 2023
a569003
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
mathprofcarrie Jul 26, 2023
ae92e7e
some influencer analysis
mathprofcarrie Jul 26, 2023
2d79bea
Improve readability
siwelwerd Jul 26, 2023
9a474f7
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
siwelwerd Jul 26, 2023
4027742
Remove unneeded import
siwelwerd Jul 26, 2023
8b9b362
Remove duplicate
siwelwerd Jul 26, 2023
65ebf0f
Create Code_Themes_Overtime_Vis.ipynb
RachelRoca Jul 26, 2023
012e552
Update Code_Themes_Overtime_Vis.ipynb
RachelRoca Jul 26, 2023
f5d012d
Update Code_Themes_Overtime_Vis.ipynb
RachelRoca Jul 26, 2023
f0c8df2
Update Code_Themes_Overtime_Vis.ipynb
RachelRoca Jul 26, 2023
5cf996f
Align two list outputs
siwelwerd Jul 27, 2023
c821dc6
Update
siwelwerd Jul 27, 2023
0dc343e
Created timeseriesanalysis folder and added code
jehibdon Jul 27, 2023
b23755b
Tweet network
siwelwerd Aug 22, 2023
d9f2b6c
Create playingaround.ipynb
RachelRoca Aug 30, 2023
e4e46dc
More work in TDA
RachelRoca Sep 7, 2023
ad906ab
Update playingaround.ipynb
RachelRoca Sep 8, 2023
64e3ff7
more stuff!
RachelRoca Oct 3, 2023
125cad0
more work
RachelRoca Nov 17, 2023
4a9a56a
Update MapperSpecific.ipynb
RachelRoca Nov 17, 2023
940a1b5
Influencer tweet topics
siwelwerd Jan 19, 2024
0a0b4de
Influencer tweet topics
siwelwerd Jan 19, 2024
c8044a1
Update playingaround.ipynb
RachelRoca Feb 2, 2024
50c62b4
JointMath codes
siwelwerd Feb 2, 2024
b58cd55
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
siwelwerd Feb 2, 2024
54f740f
Update MapperSpecific.ipynb
RachelRoca Feb 5, 2024
3ee4bbf
mapper with eccentricity parameter playing
RachelRoca Feb 7, 2024
135dc79
who is tweeting about important things
siwelwerd Mar 8, 2024
7c81179
now with plots
siwelwerd Mar 8, 2024
c9a2c51
clusters and mapper
RachelRoca Mar 12, 2024
4a1fde6
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
RachelRoca Mar 12, 2024
c03ef9f
Minor tweak
siwelwerd Mar 16, 2024
f303881
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
siwelwerd Mar 16, 2024
b345ee8
Create Rachel_cluster_tda.ipynb
RachelRoca Mar 19, 2024
c149398
Include sourcetweet_text in people-edge-list
siwelwerd Dec 10, 2024
62ec047
Codes for top people
siwelwerd Dec 10, 2024
4f472ba
Off by one error
siwelwerd Dec 10, 2024
153dd87
Get OTs
siwelwerd Dec 11, 2024
aee563f
chugging along
RachelRoca Dec 11, 2024
8854d8b
exporting the csv for adjacency matrix
RachelRoca Dec 11, 2024
5aa5b07
Updates
siwelwerd Dec 11, 2024
97cbb1e
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
siwelwerd Dec 11, 2024
bbbd2f2
user code network
mathprofcarrie Dec 12, 2024
34ec68b
More work
siwelwerd Dec 12, 2024
96904f4
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
siwelwerd Dec 12, 2024
be43c7f
Split into two plots
siwelwerd Dec 12, 2024
59871de
Re-implement inrank+outrank
siwelwerd Dec 12, 2024
52049df
Anonymizing
siwelwerd Mar 14, 2025
1ca9966
Hash tweet ids
siwelwerd Mar 18, 2025
48aa97a
Improve anonymization
siwelwerd Mar 28, 2025
2d98846
Remove unused thing
siwelwerd Mar 28, 2025
a446251
Anonymized data files
siwelwerd Mar 28, 2025
934617a
Get Carrie's code to run again
siwelwerd Mar 28, 2025
4a1c81d
starting to make word matrix
mathprofcarrie Dec 10, 2025
19b2cfa
Add devcontainer
siwelwerd Dec 11, 2025
de35350
got to line 266
mathprofcarrie Dec 11, 2025
dffd5f9
Update devcontainer
siwelwerd Dec 11, 2025
b21194d
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
siwelwerd Dec 11, 2025
adfbbb3
exported csv file
mathprofcarrie Dec 11, 2025
8e429c6
Toy example
siwelwerd Dec 11, 2025
96ee3a1
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
siwelwerd Dec 11, 2025
5c56431
generated csv biadjacency matrix
mathprofcarrie Dec 11, 2025
38c8a01
more clean
mathprofcarrie Dec 11, 2025
81f9ec5
made edgelist
mathprofcarrie Dec 11, 2025
75fc04b
fixed data export on edgelist
mathprofcarrie Dec 11, 2025
4bdf220
Update requirements.txt
siwelwerd Dec 11, 2025
189e532
Merge branch 'main' of https://github.com/DAAAAMNSocialJustice/disrup…
siwelwerd Dec 11, 2025
b775e1a
Add notebook from Guided NMF
siwelwerd Dec 11, 2025
03f9f0a
Add missing =
siwelwerd Dec 11, 2025
f114032
Update requirements.txt
siwelwerd Dec 11, 2025
951d7f4
nmf test run with text_of_tweets data
Zibiana Dec 12, 2025
2e88450
Move the nmf.ipynb file to the correct folder and tried a different d…
Zibiana Dec 12, 2025
51b3a85
adding initial heatmap committed
StephanPatterson Dec 12, 2025
1248d3b
Merge branch 'main' into NMF_JMM
siwelwerd Dec 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
149 changes: 149 additions & 0 deletions .Rhistory
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
# Query Twitter API to obtain data ----------------------------------------
## Query API with these parameters and save as JSON files
tweets <- get_all_tweets(query = "disruptJMM",
start_tweets = "2006-04-01T00:00:00Z",
end_tweets = "2021-10-01T00:00:00Z",
bearer_token = get_bearer(),
n = Inf,
data_path = "data/",
bind_tweets = FALSE)
# Bind JSONs into data.frame; Multiple options depending on need ----------
## Tidy: "Opinionated” format the devs believe to contain all essential columns for social media research
twitterData_tidy <- bind_tweets(data_path = "data/", user = TRUE, output_format = "tidy")
#### Note you will need to load the twitterData_tidy to run the code.
library(readxl)
twitterData_tidy <- read_excel("twitterData_tidy.xlsx")
View(twitterData_tidy)
View(twitterData_tidy)
View(twitterData_tidy)
# - Library's to load
library(academictwitteR)
library(tidytags)
library(tidyverse)
library(lubridate)
library(stringr)
library(visNetwork)
library(igraph)
############## - Data Sorted by Month #####################
timeSeriesMonth <- twitterData_tidy
## Convert dates in new data frame from characters to format year-month-date
timeSeriesMonth$created_at <- as.POSIXct(timeSeriesMonth$created_at)
## Create a month variable then group by months to summarize tweet numbers
timeSeriesMonth <- timeSeriesMonth %>%
select(created_at) %>%
mutate(month = floor_date(created_at, "month")) %>%
group_by(month) %>%
summarize(tweets = n())
## Plot #disruptJMM Tweets Over Time (2020-2021)
plot_timeSeriesMonth <- ggplot(timeSeriesMonth, aes(x = month, y = tweets)) +
geom_point() +
geom_line() +
theme_minimal() +
scale_x_datetime(date_breaks = "2 months",
date_labels = "%b, \n%Y") +
theme(axis.text.x = element_text(angle = 0, vjust = 1, hjust = 0.5),
plot.title = element_text(face = "bold")) +
labs (x = "Date", y = "Tweet Count",
title = "#disruptJMM Tweets Over Time (2020-2021)",
subtitle = "JMM 2020: Jan. 15th - 18th \nJMM 2021: Jan. 06th - 09th",
caption = "\nSource: Twitter's API via academictwitteR")
## View plot
plot_timeSeriesMonth
############## - By Day of 2020 During JMM #####################
## Create new data frame from twitterData_tidy
timeSeriesDay2020 <- twitterData_tidy %>%
filter(str_detect(created_at, "2020-01"))
## Convert dates in new data frame from characters to format year-month-date
timeSeriesDay2020$created_at <- as.POSIXct(timeSeriesDay2020$created_at)
## Create a month variable then group by days to summarize tweet numbers
timeSeriesDay2020 <- timeSeriesDay2020 %>%
select(created_at) %>%
mutate(day = floor_date(created_at, "day")) %>%
group_by(day) %>%
summarize(tweets = n())
## Plot #disruptJMM Tweets Over Time During JMM Conference (2020)
plot_timeSeriesDay2020 <- ggplot(timeSeriesDay2020, aes(x = day, y = tweets)) +
geom_point() +
geom_line() +
theme_minimal() +
scale_x_datetime(date_breaks = "1 day",
date_labels = "%a, \n%d") +
theme(axis.text.x = element_text(angle = 0,
vjust = 1,
hjust = 0.5),
plot.title = element_text(face = "bold")) +
labs (x = "Date", y = "Tweet Count",
title = "#disruptJMM Tweets During JMM (2020)",
subtitle = "JMM 2020: Jan. 15th - 18th",
caption = "\nSource: Twitter's API via academictwitteR")
## View plot
plot_timeSeriesDay2020
############## - By Day of 2020 During JMM #####################
## Create new data frame from twitterData_tidy
timeSeriesDay2021 <- twitterData_tidy %>%
filter(str_detect(created_at, "2021-01"))
## Convert dates in new data frame from characters to format year-month-date
timeSeriesDay2021$created_at <- as.POSIXct(timeSeriesDay2021$created_at)
## Create a month variable then group by days to summarize tweet numbers
timeSeriesDay2021 <- timeSeriesDay2021 %>%
select(created_at) %>%
mutate(day = floor_date(created_at, "day")) %>%
group_by(day) %>%
summarize(tweets = n())
## Plot #disruptJMM Tweets Over Time During JMM Conference (2021)
plot_timeSeriesDay2021 <- ggplot(timeSeriesDay2021, aes(x = day, y = tweets)) +
theme_minimal() +
geom_point() +
geom_line() +
scale_x_datetime(date_breaks = "1 day",
date_labels = "%a, \n%d") +
theme(axis.text.x = element_text(angle = 0,
vjust = 1,
hjust = 0.5),
plot.title = element_text(face = "bold")) +
labs (x = "Date", y = "Tweet Count",
title = "#disruptJMM Tweets During JMM (2021)",
subtitle = "JMM 2021: Jan. 6th - 9th",
caption = "\nSource: Twitter's API via academictwitteR")
## View plot
plot_timeSeriesDay2021
## Plot the top #disruptJMM Tweeters in the dataset
plot_topTweeters <- twitterData_tidy %>%
select(user_username) %>%
group_by(user_username) %>%
summarize(n=n()) %>%
arrange(desc(n)) %>%
top_n(8, n) %>%
ggplot(aes(x = reorder(user_username, - n), y = n)) +
theme_classic() +
scale_fill_grey(start = 0.25, end = 2.75) +
geom_bar(stat = "identity") +
theme(axis.text.x = element_text(angle = 335,
vjust = 0.5,
hjust = 0.5),
plot.title = element_text(face = "bold")) +
labs (x = "Username", y = "Tweet Count",
title = "Top #disruptJMM Tweeters",
subtitle = "2020 - 2021",
caption = "\nSource: Twitter's API via academictwitteR")
## View plot
plot_topTweeters
####################### Save Dave Visualizations #######################
## Create a folder for data visualizations
dir.create("visualizations")
## Save plot as a png file
ggsave(filename = "plot_timeSeriesMonth.png",
plot = plot_timeSeriesMonth,
path = "visualizations/")
## Save plot as a png file
ggsave(filename = "plot_timeSeriesDay2020.png",
plot = plot_timeSeriesDay2020,
path = "visualizations/")
## Save plot as a png file
ggsave(filename = "plot_timeSeriesDay2021.png",
plot = plot_timeSeriesDay2021,
path = "visualizations/")
## Save plot as a png file
ggsave(filename = "plot_topTweeters.png",
plot = plot_topTweeters,
path = "visualizations/")
25 changes: 25 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/python
{
"name": "Python 3",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/python:2-3.14-bookworm",

// Features to add to the dev container. More info: https://containers.dev/features.
// "features": {},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "pip3 install --user -r requirements.txt",
"features": {
"ghcr.io/devcontainers/features/python:1": {}
},

// Configure tool-specific properties.
// "customizations": {},

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for more information:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
# https://containers.dev/guide/dependabot

version: 2
updates:
- package-ecosystem: "devcontainers"
directory: "/"
schedule:
interval: weekly
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.DS_Store
.Rproj.user
Loading