R 构建主体字符串

R 构建主体字符串,r,string,R,String,我希望建立一个身体字符串如下所述 问题: 假设键值对是从列表中获取的,并且键值对是3个或更多,我如何实现相同的结果 注: 某些字符只设置一次,例如方括号,并且每个键值对使用一次冒号 内容和键值对仅用于描述结构,最终解决方案将具有其他值,例如epic=瑞典、货币=美元等 目前解决这一问题的思路: 分3步处理数据 1每个键和值都需要有转义引号 2每个键值对应使用冒号作为分隔符 3完整的绳子应该用花括号包裹起来 4最后一个键值对不应以逗号结尾 # Characters for building str

我希望建立一个身体字符串如下所述

问题:

假设键值对是从列表中获取的,并且键值对是3个或更多,我如何实现相同的结果

注:

某些字符只设置一次,例如方括号,并且每个键值对使用一次冒号

内容和键值对仅用于描述结构,最终解决方案将具有其他值,例如epic=瑞典、货币=美元等

目前解决这一问题的思路:

分3步处理数据

1每个键和值都需要有转义引号

2每个键值对应使用冒号作为分隔符

3完整的绳子应该用花括号包裹起来

4最后一个键值对不应以逗号结尾

# Characters for building string.

curly_bracket_left  <- "{"
curly_bracket_right <- "}"
colon               <- ": "
comma               <- ", "

escaped_quotation   <- "\""

# Key-value-pairs data.

key_title_1         <- "epic"
value_title_1       <- "sweden"

key_title_2         <- "currency"
value_title_2       <- "SEK"

# Build string.

string <- paste0(
    curly_bracket_left,

        escaped_quotation,
        key_title_1,
        escaped_quotation,
    colon,

        escaped_quotation,
        value_title_1,
        escaped_quotation,
    comma,

        escaped_quotation,
        key_title_2,
        escaped_quotation,
    colon,

        escaped_quotation,
        value_title_2,
        escaped_quotation

    curly_bracket_right
)

print(string)
具有3个值对时需要的结果:

[1] "{\"epic\": \"sweden\", \"currency\": \"SEK\", \"resolution\": \"minutes_5\"}"
您可以在paste0中使用折叠参数,如下所示:


@阿克伦。这是正确的。结果如预期。问题是如何扩展解决方案以处理多于2个键值对。我有时会有20-30个键值对。目前,出于测试目的,该解决方案是在Global.env中创建的,但我计划将其作为类的一部分移动到R6,该类将被实例化以创建对象。我的理解是R6对象基本上是作为对象添加到全局环境的环境结构。key-X和value-Y是字符串文本的唯一示例。在真正的解决方案中,我将使用其他名称,例如epic=sweden、currency=USD等。因此,文本系列的构建不会解决问题。更新了问题。@akrun我用键值对中的正确值更新了问题。当然,手动添加第三个键值对并构造字符串的这一部分非常简单,但是如果情况发生变化,只有20-30个键值对,则需要另一个逻辑来解决,而不必在代码中重复太多。也许我遗漏了一些东西,但您是否有特别的原因重新发明,以及?
[1] "{\"epic\": \"sweden\", \"currency\": \"SEK\", \"resolution\": \"minutes_5\"}"
keys <- state.abb
vals <- state.name

# Characters for building string.

curly_bracket_left  <- "{"
curly_bracket_right <- "}"
colon               <- ": "
comma               <- ", "

escaped_quotation   <- "\""

paste0(
  curly_bracket_left,

  paste0(escaped_quotation,
         keys,
         escaped_quotation,

         colon,

         escaped_quotation,
         vals,
         escaped_quotation,
         collapse = comma
  ),

  curly_bracket_right
)

#output:
# [1] "{\"AL\": \"Alabama\", \"AK\": \"Alaska\", \"AZ\": \"Arizona\", \"AR\": \"Arkansas\", \"CA\": \"California\", \"CO\": \"Colorado\", \"CT\": \"Connecticut\", \"DE\": \"Delaware\", \"FL\": \"Florida\", \"GA\": \"Georgia\", \"HI\": \"Hawaii\", \"ID\": \"Idaho\", \"IL\": \"Illinois\", \"IN\": \"Indiana\", \"IA\": \"Iowa\", \"KS\": \"Kansas\", \"KY\": \"Kentucky\", \"LA\": \"Louisiana\", \"ME\": \"Maine\", \"MD\": \"Maryland\", \"MA\": \"Massachusetts\", \"MI\": \"Michigan\", \"MN\": \"Minnesota\", \"MS\": \"Mississippi\", \"MO\": \"Missouri\", \"MT\": \"Montana\", \"NE\": \"Nebraska\", \"NV\": \"Nevada\", \"NH\": \"New Hampshire\", \"NJ\": \"New Jersey\", \"NM\": \"New Mexico\", \"NY\": \"New York\", \"NC\": \"North Carolina\", \"ND\": \"North Dakota\", \"OH\": \"Ohio\", \"OK\": \"Oklahoma\", \"OR\": \"Oregon\", \"PA\": \"Pennsylvania\", \"RI\": \"Rhode Island\", \"SC\": \"South Carolina\", \"SD\": \"South Dakota\", \"TN\": \"Tennessee\", \"TX\": \"Texas\", \"UT\": \"Utah\", \"VT\": \"Vermont\", \"VA\": \"Virginia\", \"WA\": \"Washington\", \"WV\": \"West Virginia\", \"WI\": \"Wisconsin\", \"WY\": \"Wyoming\"}"