【问题标题】:how to vectorize the args of a function in R?如何矢量化 R 中函数的参数?
【发布时间】:2017-07-08 03:12:43
【问题描述】:

我在 R 中有一个列表,我正在尝试从字符数组中重命名列表成员。例如:

mylist <- list(c('a','b','c'),c('d','e'),'f')
headers <- c('heading1','heading2','heading3')

我可以像这样重命名列表成员:

names(mylist) <- c(headers[1],
                   headers[2],
                   headers[3])

但是当我的列表有 100 多个成员时,这段代码写起来很糟糕。我尝试过使用 for 循环和矢量化表示法,但没有任何效果。抱歉,这无疑是一个重复的问题,但我在尝试用谷歌搜索时搜索了很多错误的线索

【问题讨论】:

  • names(mylist) &lt;- headers

标签: r function loops vectorization args


【解决方案1】:

您可以使用粘贴功能在 for 循环中按顺序创建编号的标题。然后使用上面的答案将标题分配给列表的名称。

mylist <- list(c('a','b','c'),c('d','e'),'f')
headers <- rep(NA, length(mylist))
for (i in 1:length(mylist)){
  headers[i] <- paste("heading", i, sep = "")
}
names(mylist) <- headers

【讨论】:

    【解决方案2】:

    使用sprintf-function 就像这样简单:

    names(mylist) <- sprintf("%s%s", "heading", 1:length(mylist))
    

    结果:

    > mylist
    $heading1
    [1] "a" "b" "c"
    
    $heading2
    [1] "d" "e"
    
    $heading3
    [1] "f"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多