R. 2个字符串的巨大向量

时间:2017-06-01 10:17:57

标签: r string vector

为了标记数以千计的随机点,我需要一个带标签的巨大矢量。出于逻辑原因,我希望所有字符串都有长度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的字符串轻松增加向量的长度吗?
  3. 感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

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

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

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

但是,我认为这样的标签计划可能没有您希望的那么有用。在情节上像这样标记点存在使图不可读的风险。你确定这是你需要的方法吗?