在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,')')
#[1] "(mercury AND earth AND Jupiter AND Uranus AND Pluto?)"

或基本R版本为:

sprintf('(%s)',collapse  = ' AND '))
#[1] "(mercury AND earth AND Jupiter AND Uranus AND Pluto?)"

如果每个单词都需要引号,则可以将sprintf输出扭曲为:

tmp <- sprintf('("%s")',collapse  = '" AND "'))
cat(tmp)
#("mercury" AND "earth" AND "Jupiter" AND "Uranus" AND "Pluto?")
,

我们可以使用{ "SecurityGroups": [ { "GroupName": "group1","IpPermissions": [ { "IpRanges": [ { "CidrIp": "10.0.0.0/8" } ],"UserIdGroupPairs": [] },"GroupId": "sg-012345",},{ "GroupName": "group2","IpPermissions": [ { "IpRanges": [],"UserIdGroupPairs": [ { "GroupId": "sg-abcd",} ] },"GroupId": "sg-06789",{ "GroupName": "group3","IpPermissions": [ { "IpRanges": [ { "CidrIp": "192.0.0.0/8" } ],"UserIdGroupPairs": [ { "GroupId": "sg-xyz","GroupId": "sg-xyz" } ] }

glue