如何创建包含特定列名的多个字符串的向量?

时间:2017-09-29 15:33:23

标签: r string vector rename

给定3 x 100矩阵,我如何创建包含单个列名的字符串向量?具体而言,列包括20组5个连续度量,因此字符串应匹配变量(即varA,... varC),设置(SET1至SET20)和顺序(1至5)。例如:

my_matrix = replicate(100, rnorm(3)) 

my_names <- c("varA.SET1.1", "varA.SET1.2", "varA.SET1.3", "varA.SET1.4", "varA.SET1.5",
              "varA.SET2.1", "varA.SET2.2", "varA.SET2.3", "varA.SET2.4", "varA.SET2.5",

              ...

              "varC.SET5.5")

1 个答案:

答案 0 :(得分:3)

您可以使用sprintf

v <- LETTERS[1:3]
set <- 1:20
ord <- 1:5

ex <- expand.grid(v, set, ord) 
my_names <- sprintf("var%s.SET%i.%i", ex[, 1],ex[, 2], ex[, 3])

head(my_names)
#[1] "varA.SET1.1" "varB.SET1.1" "varC.SET1.1" "varA.SET2.1" "varB.SET2.1"
#[6] "varC.SET2.1"