r - str_c 在 R 中使用 "
问题描述
在我尝试构建最后一行时,有人可以帮助我吗:
[1] ("mercury" AND "earth" AND "Jupiter" AND "Uranus" AND "Pluto?")
通过使用下面的代码
df <- structure(list(AND = c("mercury", "earth", "Jupiter", "Uranus",
"Pluto?"), OR = c("venus", "Mars", "Saturn", "Neptune", "")), class = "data.frame", row.names = c(NA,
-5L))
# fist
first <- str_c(c(' (" ' ,df$AND[1], ' " ' ), sep = "")
# in between
between <- str_c(df$AND[2:(nrow(df) - 1)], sep = ' " AND " ')
# last
last <- str_c(c(' " ',df$AND[nrow(df)], ' ") ' ), sep = "")
# full
str_c(c(first,between,last), sep = "")
但这就是我的结果:
[1] " (\" " "mercury" " \" " "earth" "Jupiter" "Uranus" " \" " "Pluto?" " \") "
解决方案
您可以使用 :
library(stringr)
str_c('(', str_c(excel$AND, collapse = ' AND '), ')')
#Similar using paste0
#paste0('(', paste0(excel$AND, collapse = ' AND '), ')')
#[1] "(mercury AND earth AND Jupiter AND Uranus AND Pluto?)"
或者一个基本的 R 版本将是:
sprintf('(%s)', paste0(excel$AND, collapse = ' AND '))
#[1] "(mercury AND earth AND Jupiter AND Uranus AND Pluto?)"
如果我们需要在每个单词周围加上引号,我们可以将sprintf
输出扭曲为:
tmp <- sprintf('("%s")', paste0(excel$AND, collapse = '" AND "'))
cat(tmp)
#("mercury" AND "earth" AND "Jupiter" AND "Uranus" AND "Pluto?")
推荐阅读
- javascript - Google Cloud Functions:尝试使用 ES6 时部署失败
- c# - Xamarin 表单反序列化 Json 不工作
- python - 在 SQLAlchemy 中有效地找到没有孩子的父母
- visual-studio-2019 - Microsoft Visual Studio 扩展 (VSIX) 小写 $safeprojectname$
- ruby-on-rails - Rails - 地理编码器安装问题
- ios - APPSTORE:无法提交应用以供审核。启动审核过程需要以下项目: 发生错误。稍后再试
- ruby-on-rails - rails g 模型或 rails g 脚手架不创建模型
- javascript - ng2-tooltip-directive 在 mousemove 事件上隐藏工具提示
- javascript - Node.js 中 Cloud Firestore 的自定义对象在快照中运行。数据不是函数错误
- c - 安全地跳过 strtok 的空终止符