r语言 - 构建正文字符串



我希望构建一个如下所述的正文字符串。

问题:

假设从列表中获取键值对并且键值对为 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)

结果(如预期(:

[1] "{"epic": "sweden", "currency": "SEK"}"

拥有 3 个值对时的预期结果:

[1] "{"epic": "sweden", "currency": "SEK", "resolution": "minutes_5"}"

您可以在paste0中使用 collapse 参数,如下所示:

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"}"

相关内容

最新更新