我有一个数据帧,看起来像这样:
df <- tibble::tribble(
~topic, ~substance,
"Pregnancy, High-Risk", "Krill oil",
"Pregnancy Complications/ prevention & control*", "Fish oils*",
"Premature Birth/ prevention & control*", "Omega 3")我想将列的每个元素组合成一个预格式化的字符串,表示将在PubMed (一个科学文献数据库)中使用的查询。
查询包含OR、and和AND括号的组合,格式如下:
query <- "((Topic 1) OR (Topic 2) OR (Topic 3)) AND ((Substance 1) OR (Substance 2) OR (Substance 3))"又名:
(
(Pregnancy, High-Risk)
OR
(Pregnancy Complications/ prevention & control*)
OR
(Premature Birth/ prevention & control*)
)
AND
(
(Krill oil)
OR
(Fish oils*)
OR
(Omega 3)
)我如何才能以一种面向整洁的方式实现这一点呢?
发布于 2019-07-31 19:04:29
我认为你可以使用paste在base R中实现这一点。
paste(sapply(df, function(x)
paste("(", paste("(", x, ")", collapse = " OR"), ")")), collapse = " AND ")
#"( ( Pregnancy, High-Risk ) OR( Pregnancy Complications/ prevention & control* )
# OR( Premature Birth/ prevention & control* ) ) AND
# ( ( Krill oil ) OR( Fish oils* ) OR( Omega 3 ) )"如果有多个列需要联接,则使用sapply。如果你真的需要它,你绝对可以用stringr::str_c来翻译它。
https://stackoverflow.com/questions/57289194
复制相似问题