【问题标题】:How to generate a sequence in R, that starts with 01 and ends with 99?如何在 R 中生成一个以 01 开头并以 99 结尾的序列?
【发布时间】:2016-08-08 09:28:25
【问题描述】:

我想要: 01 02 03 ... 10, 11, 12 ... 97, 98, 99

我尝试过使用以下方法:

seq("01":"19") # Doesn't help
paste0("0",seq("01":"19")) # Doesn't help

请提出建议!

【问题讨论】:

  • 为什么不只是1:99?将如何使用这个character 向量?似乎几乎是this的骗子
  • 我有一个具有这种格式的列,一个长度为 2 的字符向量。想把它映射到那里。

标签: r seq


【解决方案1】:

我们可以使用sprintf

sprintf("%02d", 1:99)
#[1] "01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31" "32"
#[33] "33" "34" "35" "36" "37" "38" "39" "40" "41" "42" "43" "44" "45" "46" "47" "48" "49" "50" "51" "52" "53" "54" "55" "56" "57" "58" "59" "60" "61" "62" "63" "64"
#[65] "65" "66" "67" "68" "69" "70" "71" "72" "73" "74" "75" "76" "77" "78" "79" "80" "81" "82" "83" "84" "85" "86" "87" "88" "89" "90" "91" "92" "93" "94" "95" "96"
#[97] "97" "98" "99"

或者包选项是str_pad

library(stringr)
str_pad(1:99, pad = 0,width = 2 , "left")

【讨论】:

  • 非常感谢!实际上我想要c("01":"31","98","99") 是否有任何功能性方法可以做到这一点,或者我应该使用c(sprintf("%02d", 1:31),98,99)
【解决方案2】:

另一个选项是formatC。您可以指定width = 2 获取2位序列。

formatC(seq(1, 99), width=2, flag=0)

#[1]"01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13" "14" "15" "16" "17"
#[18]"18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34"
#[35]"35" "36" "37" "38" "39" "40" "41" "42" "43" "44" "45" "46" "47" "48" "49" "50" "51"
#[52]"52" "53" "54" "55" "56" "57" "58" "59" "60" "61" "62" "63" "64" "65" "66" "67" "68"
#[69]"69" "70" "71" "72" "73" "74" "75" "76" "77" "78" "79" "80" "81" "82" "83" "84" "85"
#[86]"86" "87" "88" "89" "90" "91" "92" "93" "94" "95" "96" "97" "98" "99"

【讨论】:

    猜你喜欢
    • 2023-03-07
    • 2012-09-22
    • 2020-08-27
    • 2014-05-22
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    相关资源
    最近更新 更多