-
Notifications
You must be signed in to change notification settings - Fork 0
/
edit.R
142 lines (118 loc) · 5.02 KB
/
edit.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
######################################################
# Analyse marché édition
######################################################
## Formatage espace de travail ----
rm(list = ls()) #supprimer tous les objets
# chargement des packages ----
library(tibble)
library(textdata)
library(Hmisc)
library(zoo)
library(flextable)
library(data.table)
library(tidyverse)
library(trimmer)
library(DescTools)
library(questionr)
library(RPostgres)
library(lubridate)
library(timechange)
library(urltools)
library(stringr)
library(rebus)
library(Matrix)
library(plyr)
library(sjmisc)
library(gtsummary)
library(igraph)
library(openxlsx2)
library(readxl)
library(openxlsx)
# install.packages('remotes')
# remotes::install_github("gadenbuie/regexplain")
## Chargement des données ----
######################################################
# Bdd publications
data_pub <- read_excel("D:/bdd pubpeer/data_pub.xlsx")
######################################################
# Bdd commentaires
data_comm <- read_excel("D:/bdd pubpeer/data_comm2.xlsx")
######################################################
# bdd retractions
df_retract <- read_excel("D:/Pubpeer Gender/df_gender_retract.xlsx")
######################################################
# Nombre d'auteurs et de commentaires
nb_aut_com <- df_retract %>%
select(publication, nb_aut, Nombre.de.commentaires)
names(nb_aut_com) <- c("publication", "nb_aut", "nb_com")
######################################################
# Données sur les rétractations
data_retract <- df_retract %>%
select(publication, is_retracted, Reason) %>%
separate_rows(Reason, sep = ";")%>%
filter(Reason != "") %>%
mutate(Reason = str_replace(Reason, "\\+", ""))
######################################################
# Bdd DOAJ
doaj <- read.csv("D:/bdd pubpeer/journalcsv__doaj_20230728_0635_utf8.csv")
######################################################
# combiner issn et eissn
doaj$combined_issn <- paste(doaj$Journal.ISSN..print.version., doaj$Journal.EISSN..online.version., sep = ", ")
# Utiliser separate_rows() pour éclater la colonne issn en plusieurs lignes
doaj <- separate_rows(doaj, combined_issn, sep = ",\\s*", convert = FALSE)
######################################################
######################################################
# Bona Fide journals : see https://www.qoam.org/bfj/data
bonaf <- read_excel("D:/bdd pubpeer/bfj-issns.xlsx")
######################################################
######################################################
# Scopus
scopus <- read_excel("D:/bdd pubpeer/SCOPUSextlistJanuary2023.xlsx")
data_scopus <- scopus %>%
select(`Sourcerecord ID`,`Source Title (Medline-sourced journals are indicated in Green)`,
`Print-ISSN`,`E-ISSN`,`Active or Inactive`, `Open Access status`, `Source Type`,
`Publisher's Name`, `Publisher imprints grouped to main Publisher`)
names(data_scopus) <- c("id_scopus","jnal_title", "issn", "eissn", "is_active", "is_oa", "type",
"publisher_row", "publisher")
######################################################
######################################################
# Fonction pour ajouter un tiret après 4 caractères
add_dash_after_4_chars <- function(text) {
substr_part1 <- substr(text, 1, 4)
substr_part2 <- substr(text, 5, nchar(text))
return(paste(substr_part1, substr_part2, sep = "-"))
}
######################################################
# Appliquer la fonction add_dash_after_4_chars aux colonnes "issn" et "eissn" du DataFrame
data_scopus$issn <- sapply(data_scopus$issn, add_dash_after_4_chars)
data_scopus$eissn <- sapply(data_scopus$eissn, add_dash_after_4_chars)
######################################################
# combiner issn et eissn
data_scopus$combined_issn <- paste(data_scopus$issn, data_scopus$eissn, sep = ", ")
# Utiliser separate_rows() pour éclater la colonne issn en plusieurs lignes
data_scopus <- separate_rows(data_scopus, combined_issn, sep = ",\\s*", convert = FALSE)
######################################################
# Enrichir les infos sur les revues avec les éditeurs ----
# Extraire les colonnes "publication" et "issn"
data_jnal <- data_pub %>%
select(publication, issn)
# Fonction pour supprimer les crochets et les apostrophes dans la colonne issn
clean_issn <- function(issn_list) {
gsub("\\[|'|\\]", "", issn_list)
}
# Appliquer la fonction clean_issn pour supprimer les crochets et les apostrophes
data_jnal$issn <- sapply(data_jnal$issn, clean_issn)
# Utiliser separate_rows() pour éclater la colonne issn en plusieurs lignes
data_jnal <- separate_rows(data_jnal, issn, sep = ",\\s*", convert = FALSE)
# matcher avec Scopus
data_jnal2 <- left_join(data_jnal, data_scopus, by = c("issn" = "combined_issn"))
# matcher avec Scopus
data_jnal3 <- data_jnal2 %>%
filter(is.na(.$id_scopus))
data_jnal4 <- left_join(data_jnal3, doaj, by = c("issn" = "combined_issn"))
data_jnal4 <- data_jnal4 %>%
filter(!is.na(.$Publisher))
# Calculer les fréquences pour avoir une idée de la distribution des sites
jwos <- df$Journal_title_WOS |>
fct_infreq() |>
questionr::freq()