From 756e2add1883257ca4ba4ce40209ab66745a3928 Mon Sep 17 00:00:00 2001 From: Tylar Date: Wed, 8 Jan 2025 17:09:05 -0500 Subject: [PATCH] Built site for gh-pages --- .nojekyll | 2 +- doi-reports/doi-report-template.html | 682 ++++++++++++++++++ index.html | 36 + index_files/figure-html/unnamed-chunk-5-1.png | Bin 0 -> 44310 bytes regional_report/regional_reports.html | 16 +- search.json | 9 +- site_libs/reactwidget-2.0.0/react-tools.js | 1 + .../reactwidget-2.0.0/react-tools.umd.cjs | 1 - sitemap.xml | 22 +- 9 files changed, 749 insertions(+), 20 deletions(-) create mode 100644 doi-reports/doi-report-template.html create mode 100644 index_files/figure-html/unnamed-chunk-5-1.png create mode 100644 site_libs/reactwidget-2.0.0/react-tools.js delete mode 100644 site_libs/reactwidget-2.0.0/react-tools.umd.cjs diff --git a/.nojekyll b/.nojekyll index 16722a5..f76b678 100644 --- a/.nojekyll +++ b/.nojekyll @@ -1 +1 @@ -e88e6270 \ No newline at end of file +18a73d1b \ No newline at end of file diff --git a/doi-reports/doi-report-template.html b/doi-reports/doi-report-template.html new file mode 100644 index 0000000..124a6b6 --- /dev/null +++ b/doi-reports/doi-report-template.html @@ -0,0 +1,682 @@ + + + + + + + + + +SE US – MBON Data Report + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + + + +
+ +
+
+

SE US

+
+ + + +
+ + + + +
+ + + +
+ + +
+
+get doi citations & print them +
library(glue)
+library(here)
+library(httr)
+library(jsonlite)
+library(tidyr)
+
+source(here("R/getCleanedData.R"))
+df <- getCleanedData()
+
+# Step 1: Split comma-separated DOIs into multiple rows
+df <- df %>%
+  separate_rows(doi, sep = ",") %>%
+  filter(!is.na(doi) & doi != "")  # Remove empty or NA DOIs
+
+# Initialize a list to store citing DOIs for each doi in the dataframe
+all_citing <- list()
+
+# Loop through each DOI in the dataframe
+for (i in seq_along(df$doi)) {
+  doi <- df$doi[i]
+  
+  # Skip if DOI is empty or NA
+  if (is.na(doi) || doi == "") {
+    message(glue("Skipping empty DOI at row {i}."))
+    next
+  }
+  
+  # Create the URL for the OpenCitations API
+  opcit <- glue("https://opencitations.net/index/coci/api/v1/citations/{doi}")
+
+    # Make the API request
+  response <- tryCatch({
+    GET(opcit)
+  }, error = function(e) {
+    message(glue("Error fetching data for DOI: {doi}, skipping."))
+    NULL
+  })
+  
+  # Check if response is valid
+  if (is.null(response) || http_status(response)$category != "Success") {
+    message(glue("Invalid response for DOI: {doi}, skipping."))
+    next
+  }
+  
+  # Parse JSON content
+  result <- tryCatch({
+    content(response, "parsed", type = "application/json")
+  }, error = function(e) {
+    message(glue("Error parsing JSON for DOI: {doi}, skipping."))
+    NULL
+  })
+  
+  # Extract citing DOIs if result is valid
+  if (!is.null(result) && length(result) > 0) {
+    citing <- lapply(result, function(x) x[['citing']])
+    citing <- unlist(citing)
+    
+    # Store in the list
+    all_citing[[doi]] <- citing
+    
+    # Print the citing DOIs
+    print(glue("Citing DOIs for {doi}:"))
+    print(citing)
+  } else {
+    message(glue("No citing DOIs found for {doi}."))
+  }
+}
+
+
+
Citing DOIs for 10.6073/pasta/89b63c4b49b80fb839613e9d389d9902:
+[1] "10.1038/s43247-021-00177-9"
+
+
+
Citing DOIs for 10.6073/pasta/06c6b9983a5f0a44349e027a002f5040:
+[1] "10.1101/2022.07.05.498812"
+
+
+ + + +
+ +
+ + + + + \ No newline at end of file diff --git a/index.html b/index.html index bc4c31c..075fd9e 100644 --- a/index.html +++ b/index.html @@ -305,6 +305,42 @@

MBON Data Report(s)

+
+
+show counts for standard publication metrics +
library(ggplot2)
+library(dplyr)
+library(tidyr)
+
+source(here("R/getCleanedData.R"))
+data <- getCleanedData()
+
+# Select columns to analyze
+columns_to_check <- c(
+  "erddap_link", "ncei_link", "code_link", "obis_link", "doi", "web_link"
+)
+
+# Count non-empty values for each column
+summary_df <- data %>%
+  summarise(across(all_of(columns_to_check), ~ sum(!is.na(.) & . != ""))) %>%
+  pivot_longer(cols = everything(), names_to = "Column", values_to = "NonEmptyCount")
+
+# Plot the bar chart
+ggplot(summary_df, aes(x = Column, y = NonEmptyCount)) +
+  geom_bar(stat = "identity", fill = "steelblue") +
+  labs(title = "N Datasets Published by Repository",
+       x = "Publication Type",
+       y = "Number of Datasets") +
+  theme_minimal()
+
+
+
+
+

+
+
+
+
diff --git a/index_files/figure-html/unnamed-chunk-5-1.png b/index_files/figure-html/unnamed-chunk-5-1.png new file mode 100644 index 0000000000000000000000000000000000000000..baa565e211c50020f01fba37c18032d044540efd GIT binary patch literal 44310 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≻Mp@Q56L7wftA4*PpL z6NZCMITtb2UKf3oJz1o#_If|(&%Rfg?$PugMe|n(+u{-)aP_M_4i%-%F*=SfBP8D{ zJe*1u2!d2QZha=o!2W5SQK>1@VUKqmI)wRzt(g3-w}0~e7jE;@H>E32j15jAY>dL6 zDKR|Z6rd%xH85*eYu6#Tr(-~xon0g!lmIU=xL@p^BL7WakNhXy{V69_m$6*smK#>Z z>_>Fb4mn9Cetd5op0zLgPswaRT=u=iv=s{7x+i#ov~%wF^7dZ85gpLy;g2v*EY_TW z|A;8MMy#j9yFpNtZd72(nU8u%dN=yQcWZmKFtyeUd4QFcoO_wffNM*3mIN!)4+?f=lLDtLXn@A(LB?)CEtWRevYw6)#iix>lhj-FV~8`8>zyiES(e`}{9{Gr7 z+u0XAwY9Uh2BR`qEWY1jxOp>4=lBqQf8>$q#G8T#0#Xg6>B8JT2t$lycJyG_CS;&i`YSK}Xa<{y0!eJtt|(50@H-af%?xPJjXsV zZuuHm74>xJdCacbd5VzV-T(!f(Z?W5O2=ueJn`eLpvt!Hp(eylrApkMu${!h3kAz4 zlRB~2XKVZ6-@CsPY1LKLy&}9asd3V)MR)rq?M;UAyTC$*9Wvbub)89?nZWGYKKF4~ z^itFT8E$E!C_2!Dt3?`*f^kEZrDi4$Hw93$9e;XzDEY5ZO3?aoiA3t&e{yWx^zx^c zD|#MPbkr8vHe{y09IotO=s+0MJu;!qQ2+hcn701m10%ns2JVhX>LQ6osqiPa7~krhF z>_IY4y|bB-mAOFvWZ0__oHNXRlzFnVriOEQv@EsJghOyeSb*e1%b(LCOCjU)V><>C zj-w4u{r3t9%qd!Gf{gV3%ky!)4a~H15^h3Y?(=GtQC`qB_}o921+l#@zpmtY!ba}& zhvz^}C(1iTtn;Biqn}WX@_-@ND-h_Xt zs_e>q9Kl>`N5iP^&-xE)gcAbxF+-`*u_2YZCYy}VAAToi8TkRCRgxcH&-k9{0u1tXRdWO5?-DZ26B$30V2=60$r$#Mr*6-&ZS1=#JC| zlafp9O5CBkywS$)0&J&+i_^!9%v&TFEy+6*ecGG|0-~04gx)o=T~Y0S1yeRxW2qGuAd0cuOD@{%M= z97(UkCLOQ$XO}!LXHTnU#D3^BzMlMN;>8m;!QGSS-<&<6ziM~n+Kni$l{w*1wqD*b zwESufm6lx%%)GXX3uB=l>!LT6gR>5uZ=gIB&W*`W-Eow#v;b4ROI~^K_CT5(k}@&K zBR>mT^rF7aDs|@P^4quRQAApH&h_x~ny#-BowL+dfXH!G^))Ip>Tq`tz-G*nvb-6lbFV~mJiZ7H?`ttxx~C; z*YA;U%eVJJH*~&Oo?SVn?bs!wbjoYBNyVZz6<*J*Q!}}KtjHI4lu3K4#E(JO6wgDkmxw`ll0yZ~Jj6A9Dq}YyLl!{8Bl1!a*ARLsJROp$%ccrDd)F#u&z@HqS;iUeQNw=PZPb`4D@(n2?qTqhfviYu5$?ZOyYcO9bWlM< z3=4euq%-q-PLrUg$-D`SNAH@x?q+PUEyTRT_ZWwWotX0tTevHEfR14$$A zHzeFisPhvGMaf4#`qv2n`kSGIOTClry5Y0EU=}&~Am-A?)P#WGRrJDav5E!O|70SK z(Z~Mqg6OJBaDjBdV>i=cP9fO)ucbru(6UnU7qU=wGxe4wJ0AS)qtnjpO4HJbFj=dz&d&8;+&y;3 z)r>nkXWv&|?4;h~p|-A+7Sw$Ci1{$BP z-@$&4v$_AhkZd>iwp5)xE{v+-Zvi>orYY_hVg+^Z{ZzKQw+{rPkG%7g6_CncFPd81WOoK3rF+-<{@JQU)OvdM;H7z{1Ur(dJYP1Ndf?IBD z6e(|0B*~^zpmV8~aa(K8i=D2%xTn$d(H9=t&#ML+JFdq;@Mx7D@6=~=t(^eVGomod zARb=`2~S2$Yf4{nxgK$_;BR;O6%=ijfg|YrW!dSYn`qfWSjWm?{e$P5d%ub20rTUc zUhTjpFJ~Hk`8>o5XaYX^X)(5PVz`5;lsM+htc5A<>z5ur#LHT{F-Ydn5|y?7Vm@KX z#J>J*Q2{m->=t8Of*}2tNEHMj7b@i0wpYGUcZwMSd2GV-<48)E&jm z_kDNz!~`a+Ev>IN1=KChquMKenNVlE&7%`y4E0ExLm#j%7UvnnZ=?hMIVKFOFRe4@ zC<~l+G5mPMj{Dr{9z>@QC=ypCKq`ktiNeC6?i2E=NSR5?K96 zZ&>=5?4meU1wJm-tPv)}csO?Q{PQV|P!VxdF(+k4uu61rf;E>-;vs~)r(oOUj@^>_ zb@>AD@Ws#77SE&O+30UVhmn8gBSgT8zF zmH`pJrJI@6&aJ1AVDQ8@fQkL*7|8tze%jo|j|M-abAng@_R6FG*4lT*!}$em-%3aj zB6;4fX2qLT?x{&CiEUP5y>Lo;rk|3)`5WSaGvQZ*I^uBsYbg~wU)x9fupO4SC z=gYR={?571+;e8GnRCzFp=y5@ihof6Qro!xmxc50{LjCJNR_URit%65--Y8_lu-&) zpl_Cj>*X zUZ37?QJ{8YVqz&Z(poO^L{TS7`}5q)T4DuZ1J~eX=kQZ1Y+~Sh7%i;%|;2f1sr0aK9bcIQYvnD01`?t za0pKy(=J{>P41VEU+|M>I*aWDPZ=(@9HHW-q+|&2%gCXk`+L=N*#tJ^Ze|`Nn0ge< ztq1Ejjj#ltvnhBvZh^lhlbP|koY?3uxm>;}FrdN1T34iC$-!%U&Iw27BS_#c4ge69 zT^}&WR42JYjUoRhn**+@>RNiG#@BmI_>2W(4FJSMakUTvr0cX$gguZKP|N)cah+&^z!e~n(_`BOF;r?o?NHj~YkM!iLe%Cjac)cyj^ zO$pGxS2F@7(Edka&KEd08t!YZMSEP`Ai5CqWI%M;@ZgEdtUR(Qy~GIAS!h04zhy5v z>OM)8-B|Qk|MgkI$EJ)5-Ql4TG3V{s{D#7$mMT0c*=`IU&A=--NzV73=XoaMvyw4g zK`fWeAQB$6?B`rr$%6B2ZBB?w=T1OV)qZ^=ukdwJk4pL%5?;7=mOspEC{XpB_W0^P zeLM#0x3TFnlSr8Bf-+HI3x3lX>d;22$8JH-5XN}7}F}C44rA^du+)asm4zflDM`S{>PLBTxVz_xZr zi6axNeC+2MBSyqgmEmuCah70rLF4(j9I@i@@=~n2yycU7#A9MVSDO0So>d3Q-|OE! zNG6LU#z)leif_rDDywqD0%L zF+DE_5i~#)33@<7MxnXfdmK)g3zhWgN6e=C;|@L(BvCK{w~S=1lJ$EO&nML00#&OE zX2PW_Hqwx(DnJE+tEY`0fvCkHQoT7ZmT_$RlO+r4w(}l`?-||t4|cBMa8D}h$)l7S zKHy$+>E*xN@xtqL;8%PZChn4Tlu2nG?P*%8>3wwQF(p`Ro&KfQp zEW_UaU?lW*R=ln^^#HP@;iEfJ?+Kl$HbA0KB!Uz3So3XFaDXRBsP?->r_Ft?D+cRc4nMez@D3%??lx-E{86La>?t!t(^0|(hj=P zB7Z9Rl%Q92H;8~(YuuX)H=dR8U*zoDm-SinL_pcf7?y|b&GFYTE-yylZWU__kIa^D zf{Zb%|DV%(X5x^d{dxFF?o7Jo^q*p4pofc6Q!wzmiBtPpR{CTn51@iS`Wi*l#b~=$ z{I|D5m36>~-xTI3Rrv)6RVsP>E?R*vdCvzckUYE%Ti5ibCICXQiKp%+I-sr4!sNjz zX~Qs}%1EM8voxsaPfzTsFfh#e1%%9H{}9iNw-;;daiV21(6n!It)2pkP$=7kd_aq! z!YC~BJ~p`K5qo9ixcV9Y9 zhW<3!>Cu6LwHPNIUjSUWmY6?}kVl*As4U}K^0d;0xs3IKx-~l4T2B_5nwK)Fl~%-p z%d!1skjpZ8=dGALCVA>fEjgbT`6&n!U%F^Gwy|Gr;$Zx4TR!UppXS_@XF-_Fer0w> z7mTHM(9E};W3JiQFXgyFr_MBSCA;0~=-G?_Nm18{&2x2DJI@nm8SG$eMFAaEnnXG! z*F^RSEG8~wDAANfIulfUa$n5+SEqVy?V^$+U!;st6}561ZW%MmwvPG658VWM8?v7*U2G&( zwwvYam_Eh)Bz=E#ia!+3N?OVNuXuP4GqDT38C5!Duw@HfCBlj}bTU=)G)0I*2$zn& z_6aj7iQIUFZv4#G%?jkrjZ|1*x4N@C=bOE7)`rezXGwfFZrpGa8;mNCnWCojKd5Q(|iu1aGSB7`txlo6A1e=IyJYOU&*F}#;Mzbmm(EF-C=~ruxqIb%VU3SfhHvoi=bEQvzG%Ir7;;U1yFGGS z+7NnTj0N>s3A3)7y1-xNxCzks;PI|!EgerU1cEi+YC2(7DxN7n(<(pN2TKS-1&K8r z(;CY}o7d`&RueCXj3Q|ba&6b8Uj2CYk_FO zlAx&}Fov?$>d1dVrj$H37A~36qV~h*9SpL9W#CTGKI!WBsH3rzb(f7KMfE^pBi%(- z9J{yTnf3IZa)#4fzYbItG`D=59bcqVd+&m(K(PnnaTYQEjn#5sTD$ieLMmN;GpQ=u zmJw$<#g7zRd;bfs5>D23&$Iu)#iS(cIZ}G#5(WzfM}B!+(ydavV)D$=T~w^vqh z9BelI`CMmp4xs|Xy=c_l}kj}^C}a%tD243Tw|O#yL}Ji<}7;6Do!hI-YLOf zE4G^hqn-OUW za&kzB>^_ay|7p+9Vrh6!h!1gsiL_rt;#EYFwd9=;)N`Pxy<$P27|{!-w>(5XGwfZE zI1j8$(X*nN0ze(vtNaSH^hUaEC9jSG2&Z;?P3OxH#3FeoA>SQ*bE$#)8R`>Qfp<2@od!uJVd? z&;=C{Wp-dsSX z>`{q%c2%Lja;mJ!azu{z%qI!$#O(NYC=jd5&jG|to+kWwnzB<&I&pcv%rn}Ay{~3e z(Q1mOxi=I1D<LQGpNmx2z`cY%AE`1l?ShVsxde&@{dFKIqD zV!m#(y)tJJtvfXrxNzysn@wt6s+VWlT4o+Ph%-ItE&p8-{J9CjP$^^jBy@N~@k_Q8 z0S5^Y_;85B&>Qmoj7VM5+io{5yWojsHS_=!)SWvG-n{Xn z<^D*o%6e8ET)2D5>j5ZrsCG#D4>^7tJ)7_xtQBcBlR>@aIU5bZkZMf^$su2e)GhBu z`-Z7qvU3%xG%rzkkc{oIH{;?Rr6!SCw{u2LCti~YP=ASMTG`nPJvXGkC>^ZgDf}(; z@s05nPo94Hr-F}6BiXzqOYTWFo*~-X&_8jbr4~J3HxBGP^Al4ytL{B&FIvKqQZ3N( z6vpP@X1lfH&L{}3BGPOBB2uDTbteHPFU?7cxC3VXi=-F*Xu$=hJoI!}y$5x2sICbV zaT~~vd9rPb7 zvJRXvm3ETwp38r+HrVB*%h{&*K>qs{79(vLsDU@GC8c7-O5S#Qm!WxG@#ou^E)Y7O z@5EvY*XK52Tf}|RHl|I_E9IIc+W-@nuD{cA=qIWZ4#zhcNSi8glxH1yMtSI6Df3vR z_vnf0LRror0e%>CW5@%D4UeMnEb0-rib>P{yfZHgy)` ziL+ue+5jR#zwBH6a1H-RvEQ%@*W6k6wzEeMjV~I4R;{>59G?GPX`TtdFc<(Fenhm5I1fVO*g^xuD@(JK^F5U~h)tFnLUDg%R#-*U2R;pSTX*1Qv5s86QSJ%&Y|8*2w( za`l_4G&0ioULFnHvCRYX8z-{UF$bJJG&2$)y_=++bkP`KhXo!zS-?|@@uxO}%wbn1 zm&eGWHienN0997{uz992+G4`D@C9##Wz#FH-U~mlzL^<)Y6F|ROC>5Qz-rBlL>uT+E>g)QGSD{ z#m%>aw_A|Yr4YnA}H{zCp9C*70eA`a4YdEkir+3BGZbEbj+A)=SNeDmi4`0Tj?SUD$Quf z+Z11ZVsFu0W^&6g1d}+V*jK<#MBZYz#tT(rZfe8JpJu#q7~RkzM5Rcbx^K3~aPBoW z?lHlYi0x7FqmR!z^{F4J^g{XBWmuQ$+)T@6bzgx#3+OZu%d;NKeH!V?u1$iVzsfmU z#EeP3ym^(A98v?*-z$7NaggA9@G!XJI9P9{>hS-k^lr$N#WmhvTY2>7ivGc_MGpN< zQ9hiCJCDqMrF8E!K%7wxf&UGf{x6j|q?Rx!Q?sHgNE*8xQXRJcUod{Mv3tKH{$?;w z9J(>vsaqLkhCY`^iV&>Nt;yiyIV+dGD^-xx``rnkw1uWmG06^ATZE76p0S!0S@rI!g~!$a;2 zsr?7}D%o=f$oxTh^#MQD|3N19A3wVqOL?6rProject Reports
-
+ -
+ -
+ -
+ -
+ -
+ -
+ -
+
 
diff --git a/search.json b/search.json index 0b501de..680704e 100644 --- a/search.json +++ b/search.json @@ -39,7 +39,14 @@ "href": "index.html", "title": "MBON Data Report(s)", "section": "", - "text": "setup\nif (!requireNamespace(\"librarian\", quietly = TRUE)) {\n # If not installed, install the package\n install.packages(\"librarian\")\n}\n\nlibrarian::shelf(\n dplyr,\n ggplot2,\n here,\n networkD3,\n tm,\n wordcloud\n)\n\n\n\n\nread in data from csv\nsource(here(\"R/getCleanedData.R\"))\ndata <- getCleanedData()\n\n\n\n\ncreate word cloud from titles & descriptions\ncombined_text <- paste(data$`Dataset.title`, data$`Dataset.summary`, collapse = \" \")\ncorpus <- Corpus(VectorSource(combined_text))\n\n# Clean the text data\ntoSpace <- content_transformer(function(x, pattern) gsub(pattern, \" \", x))\ncorpus <- tm_map(corpus, toSpace, \"/\")\ncorpus <- tm_map(corpus, toSpace, \"@\")\ncorpus <- tm_map(corpus, toSpace, \"\\\\|\")\n\ncorpus <- tm_map(corpus, content_transformer(tolower))\ncorpus <- tm_map(corpus, removePunctuation)\ncorpus <- tm_map(corpus, removeNumbers)\ncorpus <- tm_map(corpus, removeWords, stopwords(\"english\"))\ncorpus <- tm_map(corpus, stripWhitespace)\n\n# Create a Term-Document Matrix\ndtm <- TermDocumentMatrix(corpus)\nmatrix <- as.matrix(dtm)\nword_freqs <- sort(rowSums(matrix), decreasing = TRUE)\ndf <- data.frame(word = names(word_freqs), freq = word_freqs)\n\n# Generate the word cloud\nwordcloud(words = df$word, freq = df$freq, min.freq = 1, \n max.words = 100, random.order = FALSE, \n colors = brewer.pal(8, \"Dark2\"))\n\n\n\n\n\n\n\n\n\n\n\ncreate a sankey diagram\nsource(\"R/yes_no_values.R\") # load consts used below\ndata <- data %>%\n mutate(\n RA = ifelse(tolower(RA) %in% no_values, \"\", RA),\n erddap = ifelse(tolower(erddap) %in% yes_values, \"in ERDDAP\", erddap),\n erddap = ifelse(tolower(erddap) %in% no_values, \"\", erddap),\n obis = ifelse(tolower(obis) %in% no_values, \"\", obis),\n obis = ifelse(tolower(obis) %in% yes_values, \"in OBIS\", obis),\n ncei = ifelse(tolower(ncei) %in% no_values, \"\", ncei),\n ncei = ifelse(tolower(ncei) %in% yes_values, \"in NCEI\", ncei)\n )\n\n# Create links data frames for each column pair and merge them together\nlinks <- rbind(\n data.frame(\n source = data$RA,\n target = data$erddap,\n value = 1\n ), \n data.frame(\n source = data$RA,\n target = data$obis,\n value = 1\n ),\n data.frame(\n source = data$RA,\n target = data$ncei,\n value = 1\n )\n) %>%\n filter_all(all_vars(. != \"\")) %>% # drop anything that is empty\n rbind(\n data.frame(\n source = data$mbon.project,\n target = data$RA,\n value = 1\n )\n )\n# Create nodes data frame\nnodes <- data.frame(\n name = c(as.character(links$source), as.character(links$target)) %>% unique()\n)\n\n# Reformat the links with IDs\nlinks$IDsource <- match(links$source, nodes$name) - 1\nlinks$IDtarget <- match(links$target, nodes$name) - 1\n\n# Make the Network\np <- networkD3::sankeyNetwork(Links = links, Nodes = nodes,\n Source = \"IDsource\", Target = \"IDtarget\",\n Value = \"value\", NodeID = \"name\",\n sinksRight = FALSE)\np" + "text": "setup\nif (!requireNamespace(\"librarian\", quietly = TRUE)) {\n # If not installed, install the package\n install.packages(\"librarian\")\n}\n\nlibrarian::shelf(\n dplyr,\n ggplot2,\n here,\n networkD3,\n tm,\n wordcloud\n)\n\n\n\n\nread in data from csv\nsource(here(\"R/getCleanedData.R\"))\ndata <- getCleanedData()\n\n\n\n\ncreate word cloud from titles & descriptions\ncombined_text <- paste(data$`Dataset.title`, data$`Dataset.summary`, collapse = \" \")\ncorpus <- Corpus(VectorSource(combined_text))\n\n# Clean the text data\ntoSpace <- content_transformer(function(x, pattern) gsub(pattern, \" \", x))\ncorpus <- tm_map(corpus, toSpace, \"/\")\ncorpus <- tm_map(corpus, toSpace, \"@\")\ncorpus <- tm_map(corpus, toSpace, \"\\\\|\")\n\ncorpus <- tm_map(corpus, content_transformer(tolower))\ncorpus <- tm_map(corpus, removePunctuation)\ncorpus <- tm_map(corpus, removeNumbers)\ncorpus <- tm_map(corpus, removeWords, stopwords(\"english\"))\ncorpus <- tm_map(corpus, stripWhitespace)\n\n# Create a Term-Document Matrix\ndtm <- TermDocumentMatrix(corpus)\nmatrix <- as.matrix(dtm)\nword_freqs <- sort(rowSums(matrix), decreasing = TRUE)\ndf <- data.frame(word = names(word_freqs), freq = word_freqs)\n\n# Generate the word cloud\nwordcloud(words = df$word, freq = df$freq, min.freq = 1, \n max.words = 100, random.order = FALSE, \n colors = brewer.pal(8, \"Dark2\"))\n\n\n\n\n\n\n\n\n\n\n\ncreate a sankey diagram\nsource(\"R/yes_no_values.R\") # load consts used below\ndata <- data %>%\n mutate(\n RA = ifelse(tolower(RA) %in% no_values, \"\", RA),\n erddap = ifelse(tolower(erddap) %in% yes_values, \"in ERDDAP\", erddap),\n erddap = ifelse(tolower(erddap) %in% no_values, \"\", erddap),\n obis = ifelse(tolower(obis) %in% no_values, \"\", obis),\n obis = ifelse(tolower(obis) %in% yes_values, \"in OBIS\", obis),\n ncei = ifelse(tolower(ncei) %in% no_values, \"\", ncei),\n ncei = ifelse(tolower(ncei) %in% yes_values, \"in NCEI\", ncei)\n )\n\n# Create links data frames for each column pair and merge them together\nlinks <- rbind(\n data.frame(\n source = data$RA,\n target = data$erddap,\n value = 1\n ), \n data.frame(\n source = data$RA,\n target = data$obis,\n value = 1\n ),\n data.frame(\n source = data$RA,\n target = data$ncei,\n value = 1\n )\n) %>%\n filter_all(all_vars(. != \"\")) %>% # drop anything that is empty\n rbind(\n data.frame(\n source = data$mbon.project,\n target = data$RA,\n value = 1\n )\n )\n# Create nodes data frame\nnodes <- data.frame(\n name = c(as.character(links$source), as.character(links$target)) %>% unique()\n)\n\n# Reformat the links with IDs\nlinks$IDsource <- match(links$source, nodes$name) - 1\nlinks$IDtarget <- match(links$target, nodes$name) - 1\n\n# Make the Network\np <- networkD3::sankeyNetwork(Links = links, Nodes = nodes,\n Source = \"IDsource\", Target = \"IDtarget\",\n Value = \"value\", NodeID = \"name\",\n sinksRight = FALSE)\np\n\n\n\n\n\n\n\n\nshow counts for standard publication metrics\nlibrary(ggplot2)\nlibrary(dplyr)\nlibrary(tidyr)\n\nsource(here(\"R/getCleanedData.R\"))\ndata <- getCleanedData()\n\n# Select columns to analyze\ncolumns_to_check <- c(\n \"erddap_link\", \"ncei_link\", \"code_link\", \"obis_link\", \"doi\", \"web_link\"\n)\n\n# Count non-empty values for each column\nsummary_df <- data %>%\n summarise(across(all_of(columns_to_check), ~ sum(!is.na(.) & . != \"\"))) %>%\n pivot_longer(cols = everything(), names_to = \"Column\", values_to = \"NonEmptyCount\")\n\n# Plot the bar chart\nggplot(summary_df, aes(x = Column, y = NonEmptyCount)) +\n geom_bar(stat = \"identity\", fill = \"steelblue\") +\n labs(title = \"N Datasets Published by Repository\",\n x = \"Publication Type\",\n y = \"Number of Datasets\") +\n theme_minimal()" + }, + { + "objectID": "doi-reports/doi-report-template.html", + "href": "doi-reports/doi-report-template.html", + "title": "SE US", + "section": "", + "text": "get doi citations & print them\nlibrary(glue)\nlibrary(here)\nlibrary(httr)\nlibrary(jsonlite)\nlibrary(tidyr)\n\nsource(here(\"R/getCleanedData.R\"))\ndf <- getCleanedData()\n\n# Step 1: Split comma-separated DOIs into multiple rows\ndf <- df %>%\n separate_rows(doi, sep = \",\") %>%\n filter(!is.na(doi) & doi != \"\") # Remove empty or NA DOIs\n\n# Initialize a list to store citing DOIs for each doi in the dataframe\nall_citing <- list()\n\n# Loop through each DOI in the dataframe\nfor (i in seq_along(df$doi)) {\n doi <- df$doi[i]\n \n # Skip if DOI is empty or NA\n if (is.na(doi) || doi == \"\") {\n message(glue(\"Skipping empty DOI at row {i}.\"))\n next\n }\n \n # Create the URL for the OpenCitations API\n opcit <- glue(\"https://opencitations.net/index/coci/api/v1/citations/{doi}\")\n\n # Make the API request\n response <- tryCatch({\n GET(opcit)\n }, error = function(e) {\n message(glue(\"Error fetching data for DOI: {doi}, skipping.\"))\n NULL\n })\n \n # Check if response is valid\n if (is.null(response) || http_status(response)$category != \"Success\") {\n message(glue(\"Invalid response for DOI: {doi}, skipping.\"))\n next\n }\n \n # Parse JSON content\n result <- tryCatch({\n content(response, \"parsed\", type = \"application/json\")\n }, error = function(e) {\n message(glue(\"Error parsing JSON for DOI: {doi}, skipping.\"))\n NULL\n })\n \n # Extract citing DOIs if result is valid\n if (!is.null(result) && length(result) > 0) {\n citing <- lapply(result, function(x) x[['citing']])\n citing <- unlist(citing)\n \n # Store in the list\n all_citing[[doi]] <- citing\n \n # Print the citing DOIs\n print(glue(\"Citing DOIs for {doi}:\"))\n print(citing)\n } else {\n message(glue(\"No citing DOIs found for {doi}.\"))\n }\n}\n\n\nCiting DOIs for 10.6073/pasta/89b63c4b49b80fb839613e9d389d9902:\n[1] \"10.1038/s43247-021-00177-9\"\n\n\nCiting DOIs for 10.6073/pasta/06c6b9983a5f0a44349e027a002f5040:\n[1] \"10.1101/2022.07.05.498812\"" }, { "objectID": "regional_report/regional_reports.html", diff --git a/site_libs/reactwidget-2.0.0/react-tools.js b/site_libs/reactwidget-2.0.0/react-tools.js new file mode 100644 index 0000000..87dc5ba --- /dev/null +++ b/site_libs/reactwidget-2.0.0/react-tools.js @@ -0,0 +1 @@ +(function(s,u){typeof exports=="object"&&typeof module<"u"?u(exports):typeof define=="function"&&define.amd?define(["exports"],u):(s=typeof globalThis<"u"?globalThis:s||self,u(s.reactR={}))})(this,function(s){"use strict";function u(n,t){if(typeof t=="string")return t;if(t.name[0]===t.name[0].toUpperCase()&&!n.hasOwnProperty(t.name))throw new Error("Unknown component: "+t.name);for(let i in t.attribs)g(t.attribs[i])&&(t.attribs[i]=u(n,t.attribs[i]));for(var a=n.hasOwnProperty(t.name)?n[t.name]:t.name,r=[a,t.attribs],e=0;e https://marinebon.github.io/data_reports/regional_report/regional_reports/Southern California Bight.html - 2024-09-12T17:39:32.707Z + 2025-01-08T22:08:52.975Z https://marinebon.github.io/data_reports/regional_report/regional_reports/All - this is a global dataset.html - 2024-09-12T17:39:32.632Z + 2025-01-08T22:08:52.923Z https://marinebon.github.io/data_reports/regional_report/regional_reports/SE US.html - 2024-09-12T17:39:32.702Z + 2025-01-08T22:08:52.972Z https://marinebon.github.io/data_reports/regional_report/regional_reports/Coastal New England.html - 2024-09-12T17:39:32.689Z + 2025-01-08T22:08:52.965Z https://marinebon.github.io/data_reports/index.html - 2024-09-10T18:01:01.423Z + 2025-01-08T22:08:33.594Z + + + https://marinebon.github.io/data_reports/doi-reports/doi-report-template.html + 2025-01-08T22:05:18.445Z https://marinebon.github.io/data_reports/regional_report/regional_reports.html @@ -30,18 +34,18 @@ https://marinebon.github.io/data_reports/regional_report/regional_reports/Arctic.html - 2024-09-12T17:39:32.638Z + 2025-01-08T22:08:52.926Z https://marinebon.github.io/data_reports/regional_report/regional_reports/Gulf of Maine.html - 2024-09-12T17:39:32.697Z + 2025-01-08T22:08:52.970Z https://marinebon.github.io/data_reports/regional_report/regional_reports/Central California.html - 2024-09-12T17:39:32.683Z + 2025-01-08T22:08:52.928Z https://marinebon.github.io/data_reports/regional_report/regional_reports/GLOS MBON.html - 2024-09-12T17:39:32.693Z + 2025-01-08T22:08:52.967Z