1
我有一个列表如何为矢量分配名称,如果它们都属于列表?
test_list = list(foo = c("a","b","c"), bar = c("First", "Second"))
test_list
# $foo
# [1] "a" "b" "c"
# $bar
# [1] "First" "Second"
我想的名字分配给向量的每个元素,这是我从数据帧的水平得到
annotation = data.frame(foo = factor(c(rep(1,3),rep(2,2), rep(3,1))),
bar = factor(c(rep('Male',2), rep('Female',4))))
# foo bar
# 1 Male
# 1 Male
# 1 Female
# 2 Female
# 2 Female
# 3 Female
我可以提取水平如下:
lapply(annotation, levels)
我可以一个接一个地指定姓名:
names(test_list$foo) <- levels(annotations$foo)
但是,由于实际上我有更长的列表,我想要矢量化命名过程。数据框中的列数与列表中元素的数目完全匹配;每个因素的层次数与向量中元素的数量完全匹配,这些元素是列表的元素。
如何在不进入循环的情况下做到这一点?