【问题标题】:R. huge vector of 2 character stringsR. 2个字符串的巨大向量
【发布时间】:2017-06-01 10:17:56
【问题描述】:

为了标记数千个随机点,我需要一个带有标签的巨大向量。出于逻辑原因,我希望所有字符串的长度都为 2。到目前为止,我所拥有的是这个字符串

sl = paste(letters[1],letters,":0",sep="")
for (i in 2:26){
  ll = paste(letters[i],letters,":0",sep="")
  sl = c(sl,ll)
}
SL = paste(LETTERS[1],LETTERS,":0",sep="") 
for (i in 2:26){
  ll = paste(LETTERS[i],LETTERS,":0",sep="")
  SL = c(SL,ll)
}
S1 = paste(LETTERS[1],0:9,":0",sep="")
for (i in 2:26){
  ll = paste(LETTERS[i],1:10,":0",sep="")
  SL = c(SL,ll)
}
s1 = paste(letters[1],0:9,":0",sep="")
for (i in 2:26){
  ll = paste(letters[i],1:10,":0",sep="")
  SL = c(SL,ll) 
}
sl=c(sl,SL,S1,s1)

这个向量只有 1872 个字符串。考虑到我的问题是

  1. 你知道有一个更优雅的方式来拥有这样的东西吗?我正在构建一个包,我发现这条线一点也不优雅。
  2. 您知道如何使用更多长度为 2 的正常字符串轻松增加向量的长度吗?

感谢任何帮助。

【问题讨论】:

  • "为了标记数千个随机点" 您是否将它们绘制在房子的墙上?我认为这个练习没有任何意义。

标签: r string vector


【解决方案1】:

将您自己限制为两个字符串并包括c(letters, LETTERS, 0:9) 的所有排列为您提供了最大的62^2 = 3844 可能性。可以通过

生成完整的向量
paste0(
  as.vector(
    outer(c(letters, LETTERS, 0:9),
          c(letters, LETTERS, 0:9),
          paste0)
  ),
  ":0"
)

如果您需要更多标签,则需要包含更多可供选择的字符,或者增加字符串的长度。

但是,我认为这样的标签方案可能没有您希望的那么有用。在绘图上标记这样的点会冒着使绘图不可读的风险。您确定这是您需要的方法吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 2019-05-14
    • 2023-03-25
    • 2017-04-13
    • 2011-08-31
    • 1970-01-01
    • 2021-09-25
    • 2019-06-18
    相关资源
    最近更新 更多