如何向量化R中函数的参数?

how to vectorize the args of a function in R?

我在 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 循环和矢量化符号,但没有任何效果。抱歉,这无疑是一个重复的问题,但我在尝试 google 时搜索了很多错误的线索

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

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

使用 sprintf 函数就很简单:

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

结果:

> mylist
$heading1
[1] "a" "b" "c"

$heading2
[1] "d" "e"

$heading3
[1] "f"