rorcid
ORCID(영어: Open Researcher and Contributor ID)는 과학자와 다른 학문 저작자를 인식하기 위한 비영리 숫자 코드로 디지털 객체 식별자(DOI, Digital Object Identifier)와 비슷한 역할을 한다.
rorcid
팩키지를 설치하게 되면 orcid_auth()
명령어를 통해서 API KEY를 획득하게 된다. [1] "Bearer XXXXXXXXXXXXXXXXXXXXXX"
에서 XXXXXXXXXXXXX
에 해당되는 문자를 복사하여 usethis::edit_r_environ()
명령어로 .Renviron
파일에 API KEY를 ORCID_TOKEN="4dsw1e14-7212-4129-9f07-aaf7b88ba88f"
와 같이 저장시켜둔다.
library(tidyverse)
library(rorcid)
orcid_auth(reauth = TRUE)
[1] "Bearer c47b70c8-b8ad-413e-9df3-b5486a9ebe12"
# orcid_auth()
#
# no ORCID token found; attempting OAuth authentication
#
# Adding .httr-oauth to .gitignore
# Waiting for authentication in browser...
# Press Esc/Ctrl + C to abort
# Authentication complete.
#
# [1] "Bearer XXXXXXXXXXXXXXXXXXXXXX"
# usethis::edit_r_environ()
# ORCID_TOKEN="4dsw1e14-7212-4129-9f07-aaf7b88ba88f"
Mohsen Attaran를 특정하여 과학자 정보를 특정해보자. orcid_search()
함수에 성과 이름을 통해서 orcid
를 특정할 수 있다. 특별한 정보를 찾을 수 없다.
rorcid::orcid_search(given_name = "Mohsen", family_name = "Attaran")
mohsen_attaran <- mohsen_attaran
# A tibble: 1 x 3
first last orcid
<chr> <chr> <chr>
1 Mohsen Attaran 0000-0002-0358-4107
Smart offices 관련 논문[1]을 Newcastle University Business School의 Savvas Papagiannidis 교수가 저술했기에 이에 대한 내용을 찾아보자.
rorcid::orcid_search(given_name = "Savvas", family_name = "Papagiannidis")
papagiannidis <- papagiannidis
# A tibble: 1 x 3
first last orcid
<chr> <chr> <chr>
1 Savvas Papagiannidis 0000-0003-0799-491X
Savvas Papagiannidis, ORCID iD를 웹브라우져를 통해 확인이 가능하다.
# webshot2::webshot(url = "https://orcid.org/0000-0003-0799-491X", file = "fig/papagiannidis.png")
::include_graphics("fig/papagiannidis.png") knitr
rorcid::browse(papagiannidis$orcid)
명령어를 통해 관련 내용을 좀더 깊이 들어갈 수 있다. 특별한 정보가 하들리 위컴(Hadley Wickham)으로 바꿔 한걸음 더 들어가보자.
orcid_search(given_name = "hadley", family_name = "wickham")
hadley <-# first last orcid
# <chr> <chr> <chr>
# 1 Hadley Wickham 0000-0003-4757-117X
rorcid::orcid_person(hadley$orcid)
hadley_list <-
::jsonedit(hadley_list) listviewer
상기 정보를 통해 개인 프로필을 작성할 수 있다. 꼭 필요하다고 생각되는 값만 추출하여 데이터프레임으로 작성한다. purrr::pluck
함수를 사용해서 꼭 필요한 Attribute 만 추출하여 데이터프레임으로 제작한다.
hadley_list %>% {
hadley_df <-::tibble(
dplyrcreated_date = purrr::map_dbl(., purrr::pluck, "name", "created-date", "value", .default=NA_character_),
given_name = purrr::map_chr(., purrr::pluck, "name", "given-names", "value", .default=NA_character_),
family_name = purrr::map_chr(., purrr::pluck, "name", "family-name", "value", .default=NA_character_),
orcid_identifier_path = purrr::map_chr(., purrr::pluck, "name", "path", .default = NA_character_),
biography = purrr::map_chr(., purrr::pluck, "biography", "content", .default=NA_character_),
emails = purrr::map(., purrr::pluck, "emails", "email", "email", .default=NA_character_),
keywords = purrr::map(., purrr::pluck, "keywords", "keyword", "content", .default=NA_character_),
researcher_urls = purrr::map(., purrr::pluck, "researcher-urls", "researcher-url", "url.value", .default=NA_character_)
)%>%
} mutate(created_date = as.POSIXct(created_date /1e3, tz = "UTC", origin="1970-01-01 00:00:00" ))
%>%
hadley_df unnest(researcher_urls)
# A tibble: 2 x 8
created_date given_name family_name orcid_identifie~ biography emails
<dttm> <chr> <chr> <chr> <chr> <name>
1 2016-10-04 20:02:31 Hadley Wickham 0000-0003-4757-~ <NA> <chr ~
2 2016-10-04 20:02:31 Hadley Wickham 0000-0003-4757-~ <NA> <chr ~
# ... with 2 more variables: keywords <named list>, researcher_urls <chr>
rorcid::works()
함수를 사용해서 과학연구자 해들리 위컴이 저술한 논문에 대해 추출하여 정리한다.
rorcid::works(hadley$orcid)
hadley_works <-
hadley_works %>%
hadley_works_df <- as.data.frame() %>%
janitor::clean_names() %>%
select(put_code, type, date = publication_date_year_value, journal = journal_title_value,
title = title_title_value, doi = url_value) %>%
mutate(doi = str_remove(doi, "https://doi.org/")) %>%
as_tibble() %>%
arrange(desc(date))
hadley_works_df
# A tibble: 46 x 6
put_code type date journal title doi
<int> <chr> <chr> <chr> <chr> <chr>
1 64917288 journal~ 2019 Journal of Open Sou~ Welcome to the Tidyver~ 10.2110~
2 38589245 other 2015 <NA> R Packages <NA>
3 38589244 journal~ 2013 Journal of Computat~ Graphical criticism: s~ <NA>
4 38589229 journal~ 2013 Journal of Computat~ The Generalized Pairs ~ <NA>
5 38589241 journal~ 2012 Journal of Computat~ ASA 2009 data expo <NA>
6 38589201 journal~ 2012 R package version rggobi: Interface betw~ <NA>
7 38589242 journal~ 2012 Journal of Statisti~ tourrGui: A gWidgets G~ <NA>
8 38589215 journal~ 2011 Journal of Statisti~ Dates and Times Made E~ <NA>
9 38589219 journal~ 2011 Computational Stati~ Mutable objects in R <NA>
10 38589216 journal~ 2011 IEEE Transactions o~ Product plots <NA>
# ... with 36 more rows
tidyverse
관련 논문해드리 위컴이 tidyverse
생태계 구축에 지대한 영향을 미쳤기 때문에 관련 논문을 찾아 공저자를 찾아보자. “Welcome to the Tidyverse”[2] 논문을 시작점으로 시작해보자. 먼저, DOI가 “10.21105/joss.01686”이라 함께 작업한 공저자를 찾아낸다.
orcid(query = 'digital-object-ids:"10.21105/joss.01686"')
# A tibble: 7 x 3
`orcid-identifier.uri` `orcid-identifier.pat~ `orcid-identifier.ho~
* <chr> <chr> <chr>
1 https://orcid.org/0000-0003-4757~ 0000-0003-4757-117X orcid.org
2 https://orcid.org/0000-0002-7765~ 0000-0002-7765-6011 orcid.org
3 https://orcid.org/0000-0002-2444~ 0000-0002-2444-4226 orcid.org
4 https://orcid.org/0000-0002-4985~ 0000-0002-4985-5160 orcid.org
5 https://orcid.org/0000-0001-9659~ 0000-0001-9659-6192 orcid.org
6 https://orcid.org/0000-0001-7297~ 0000-0001-7297-9359 orcid.org
7 https://orcid.org/0000-0002-6983~ 0000-0002-6983-2759 orcid.org
다른 방식은 논문 제목을 “Welcome to the Tidyverse” 동일하게 query =
에 넣어 확인한다.
orcid(query = 'work-titles:"Welcome to the Tidyverse"')
tidyverse_orcid <- tidyverse_orcid
# A tibble: 7 x 3
`orcid-identifier.uri` `orcid-identifier.pat~ `orcid-identifier.ho~
* <chr> <chr> <chr>
1 https://orcid.org/0000-0002-7765~ 0000-0002-7765-6011 orcid.org
2 https://orcid.org/0000-0002-2444~ 0000-0002-2444-4226 orcid.org
3 https://orcid.org/0000-0002-4985~ 0000-0002-4985-5160 orcid.org
4 https://orcid.org/0000-0001-9659~ 0000-0001-9659-6192 orcid.org
5 https://orcid.org/0000-0001-7297~ 0000-0001-7297-9359 orcid.org
6 https://orcid.org/0000-0003-4757~ 0000-0003-4757-117X orcid.org
7 https://orcid.org/0000-0002-6983~ 0000-0002-6983-2759 orcid.org
tidyverse
공동저자tidyverse
논문 저작에 참여한 공저자를 함께 찾아보자. “Welcome to the Tidyverse” 논문저작에 참여한 공저자의 ORCID를 추출하여 앞서 해들리 위컴과 마찬가지로 정보를 추출한다.
rorcid::orcid_person(tidyverse_orcid$`orcid-identifier.path`)
tidyverse_team <-
::jsonedit(tidyverse_team) listviewer
추출한 데이터가 JSON에 기반한 리스트 형식 데이터라 이를 데이터프레임으로 변환시킨다.
tidyverse_team %>% {
tidyverse_member_info <-::tibble(
dplyrcreated_date = purrr::map_dbl(., purrr::pluck, "name", "created-date", "value", .default=NA_character_),
given_name = purrr::map_chr(., purrr::pluck, "name", "given-names", "value", .default=NA_character_),
family_name = purrr::map_chr(., purrr::pluck, "name", "family-name", "value", .default=NA_character_),
orcid_identifier_path = purrr::map_chr(., purrr::pluck, "name", "path", .default = NA_character_),
biography = purrr::map_chr(., purrr::pluck, "biography", "content", .default=NA_character_),
researcher_urls = purrr::map(., purrr::pluck, "researcher-urls", "researcher-url", .default=NA_character_),
emails = purrr::map_chr(., purrr::pluck, "emails", "email", "email", .default=NA_character_),
keywords = purrr::map(., purrr::pluck, "keywords", "keyword", "content", .default=NA_character_),
external_ids = purrr::map(., purrr::pluck, "external-identifiers", "external-identifier", .default=NA_character_)
)%>%
} dplyr::mutate(created_date = anytime::anydate(created_date/1000)) %>%
arrange(created_date)
tidyverse_member_info
# A tibble: 7 x 9
created_date given_name family_name orcid_identifie~ biography researcher_urls
<date> <chr> <chr> <chr> <chr> <named list>
1 2016-04-16 Lucy D'Agostino~ 0000-0001-7297-~ <NA> <df[,16] [1 x ~
2 2016-04-16 Jennifer Bryan 0000-0002-6983-~ <NA> <chr [1]>
3 2016-10-05 Hadley Wickham 0000-0003-4757-~ <NA> <df[,16] [2 x ~
4 2018-02-27 Romain Francois 0000-0002-2444-~ I make o~ <df[,16] [1 x ~
5 2018-05-22 Garrett Grolemund 0000-0002-7765-~ <NA> <chr [1]>
6 2018-05-25 Mara Averick 0000-0001-9659-~ <NA> <chr [1]>
7 2018-08-23 Alex Hayes 0000-0002-4985-~ <NA> <chr [1]>
# ... with 3 more variables: emails <chr>, keywords <named list>,
# external_ids <named list>
1. Papagiannidis S, Marikyan D. Smart offices: A productivity and well-being perspective. International Journal of Information Management. 2020;51:102027.
2. Wickham H, Averick M, Bryan J, Chang W, McGowan LD, François R, et al. Welcome to the tidyverse. Journal of Open Source Software. 2019;4:1686. doi:10.21105/joss.01686.
데이터 과학자 이광춘 저작
kwangchun.lee.7@gmail.com