首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据框列粘贴到预先格式化的字符串中

将数据框列粘贴到预先格式化的字符串中
EN

Stack Overflow用户
提问于 2019-07-31 18:58:18
回答 1查看 35关注 0票数 0

我有一个数据帧,看起来像这样:

代码语言:javascript
复制
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括号的组合,格式如下:

代码语言:javascript
复制
query <- "((Topic 1) OR (Topic 2) OR (Topic 3)) AND ((Substance 1) OR (Substance 2) OR (Substance 3))"

又名:

代码语言:javascript
复制
(
(Pregnancy, High-Risk)
OR
(Pregnancy Complications/ prevention & control*)
OR
(Premature Birth/ prevention & control*)
)
AND
(
(Krill oil)
OR
(Fish oils*)
OR
(Omega 3)
)

我如何才能以一种面向整洁的方式实现这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2019-07-31 19:04:29

我认为你可以使用paste在base R中实现这一点。

代码语言:javascript
复制
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来翻译它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57289194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档