问题描述
在我尝试构建此最后一行时,有人可以帮助我吗?
[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