我有一个列表长这样。
my_list <- list(Y = c("p", "q"), K = c("s", "t", "u"))
我希望对每个列表元素(字符向量)命名与其所在列表相同的名称。同一向量中的所有元素必须具有相同的名称。
我已经编写了一个可以在单个列表元素上工作的函数。
name_vector <- function(x){
names(x[[1]]) <- rep(names(x[1]), length(x[[1]]))
return(x)
}
> name_vector(my_list[1])
$Y
Y Y
"p" "q"
但是我找不到矢量化的方法。如果我使用apply函数运行它,它只会返回未更改的列表。
> lapply(my_list, name_vector)
$K
[1] "p" "q"
$J
[1] "x" "y"
我希望my_list的输出结果为一个命名向量。
Y Y K K K
"p" "q" "s" "t" "u"