Efficiently get a wide table with various properties of a given set of Wikidata identifiers
Source:R/tw_get_p_wide.R
tw_get_p_wide.RdEfficiently get a wide table with various properties of a given set of Wikidata identifiers
Usage
tw_get_p_wide(
id,
p,
label = FALSE,
property_label_as_column_name = FALSE,
both_id_and_label = FALSE,
only_first = FALSE,
preferred = FALSE,
unlist = FALSE,
collapse = ";",
language = tidywikidatar::tw_get_language(),
id_df = NULL,
id_df_label = NULL,
cache = NULL,
overwrite_cache = FALSE,
cache_connection = NULL,
disconnect_db = TRUE,
wait = 0
)Arguments
- id
A character vector, must start with Q, e.g. "Q180099" for the anthropologist Margaret Mead. Can also be a data frame of one row, typically generated with
tw_search()or a combination oftw_search()andtw_filter_first().- p
A character vector, a property. Must always start with the capital letter "P", e.g. "P31" for "instance of".
- label
Logical, defaults to
FALSE. IfTRUElabels of Wikidata Q identifiers are reported instead of the identifiers themselves (or labels are presented along of them, ifboth_id_and_labelis set toTRUE)- property_label_as_column_name
Logical, defaults to
FALSE. IfFALSE, names of columns with properties are the "P" identifiers of the property. IfTRUE, the label of the correspondent property is assigned as column name.- both_id_and_label
Logical, defaults to
FALSE. Relevant only iflabelis set toTRUE, otherwise ignored. IfTRUE, the label is added as a separate column along the original one. Column name is the same as the property column, followed by "_label".- only_first
Logical, defaults to
FALSE. IfTRUE, it just keeps the first relevant property value for each id (orNAif none is available), and returns a character vector. Warning: this likely discards valid values, so make sure this is really what you want. IfFALSE, returns a list of the same length as input, with all values for each id stored in a list if more than one is found.- preferred
Logical, defaults to
FALSE. IfTRUE, returns properties that have rank "preferred" if available; if no "preferred" property is found, then it is ignored.- unlist
Logical, defaults to
FALSE. Typically used sharing or exporting data as csv files. Collapses all properties in a single string. The separator is defined by thecollapseparameter. Relevant only whenonly_firstis set toFALSE.- collapse
Defaults to ";". Character used to separate results when
unlistis set toTRUE.- language
Defaults to language set with
tw_set_language(); if not set, "en". Use "all_available" to keep all languages. For available language values, see the dedicated Wikimedia page.- id_df
Default to
NULL. If given, it should be a dataframe typically generated withtw_get(), and is used instead of calling Wikidata or using SQLite cache. Ignored whenidis of length more than one.- id_df_label
Defaults to NULL. If given, it should be a dataframe typically generated with
tw_get()with all items for which labels will be requested. It is used instead of calling Wikidata or relying on cache.- cache
Defaults to
NULL. If given, it should be given eitherTRUEorFALSE. Typically set withtw_enable_cache()ortw_disable_cache().- overwrite_cache
Logical, defaults to
FALSE. IfTRUE, it overwrites the table in the local sqlite database. Useful if the original Wikidata object has been updated.- cache_connection
Defaults to
NULL. IfNULL, and caching is enabled,tidywikidatarwill use a local sqlite database. A custom connection to other databases can be given (see vignettecachingfor details).- disconnect_db
Defaults to
TRUE. IfFALSE, leaves the connection to cache open.- wait
In seconds, defaults to 0. Time to wait between queries to Wikidata. If data are cached locally, wait time is not applied. If you are running many queries systematically you may want to add some waiting time between queries.
Examples
if (interactive()) {
tw_get_p_wide(
id = c("Q180099", "Q228822", "Q191095"),
p = c("P27", "P19", "P20"),
label = TRUE,
only_first = TRUE
)
}