如何向量化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"
我在 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"