【问题标题】:How can I create vector of multiple strings containing specific column names?如何创建包含特定列名的多个字符串的向量?
【发布时间】:2017-09-29 15:33:22
【问题描述】:

给定一个 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")

【问题讨论】:

    标签: r string vector rename


    【解决方案1】:

    您可以使用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"
    

    【讨论】:

    • 或者不指定每一列,do.call(sprintf, c(fmt = "var%s.SET%i.%i", ex))
    猜你喜欢
    • 2022-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多