【问题标题】:Creating a sequential list of numbers and letters with R使用 R 创建数字和字母的顺序列表
【发布时间】:2020-02-10 14:37:17
【问题描述】:

这个问题与this previously asked question about creating a sequential list of letters 有关。 我目前正在尝试创建一个按数字和字母顺序升序的变量列表。基本上我想要一个这样的列表:

"var_1A" "var_1B" var_"1C" "var_1D" "var_2A" "var_2B" var_"2C" "var_2D"

我可以很容易地创建一个以数字升序的变量列表

paste("var_", 1:2, "A", sep="")

或按字母顺序

paste("var_1", letters[1:4], sep="")

但将两者结合起来:

paste("var_", 1:2, letters[1:4], sep="")
[1] "var_1a" "var_2b" "var_1c" "var_2d"

我怎样才能得到上面想要的结果?

【问题讨论】:

    标签: r list


    【解决方案1】:
    foo <- expand.grid(1:2, LETTERS[1:4])
    paste0("var_", foo[,1], foo[,2])
    
    [1] "var_1A" "var_2A" "var_1B" "var_2B" "var_1C" "var_2C" "var_1D" "var_2D"
    

    【讨论】:

      【解决方案2】:

      你可以使用outer

      c(t(outer(paste0("var_", 1:2), LETTERS[1:4], paste0)))
      #[1] "var_1A" "var_1B" "var_1C" "var_1D" "var_2A" "var_2B" "var_2C" "var_2D"
      

      或者paste0rep的另一个选项

      paste0(rep(paste0("var_", 1:2), each = 4), LETTERS[1:4])
      

      【讨论】:

      • 谢谢!这正是我一直在寻找的。不过,第二个选项似乎更简单一些。是否有理由选择一种解决方案而不是另一种?
      猜你喜欢
      • 2010-11-29
      • 1970-01-01
      • 2022-06-24
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 2010-12-11
      • 1970-01-01
      • 2015-07-01
      相关资源
      最近更新 更多