【发布时间】:2018-06-05 16:15:21
【问题描述】:
我正在学习如何使用lapply 和其他方法访问复杂列表中的列表元素。我需要在某些级别上设置对象名称,但我一开始就卡住了。所以让我们创建列表:
my_list=vector("list",3)#create empty list of 3 elements
names(my_list)=c("1st.element","2nd.eleent","3rd.element")#set names(this is easy)
my_list=lapply(my_list, function(x) x=vector("list",5))#each element is list consisting 5 elements
所以现在我想为每个元素设置名称。我知道如何使用for:
for(i in 1:length(my_list)){names(my_list[[i]])=paste(names(my_list[i]),1:length(my_list[[i]]),sep=".")}
这个循环的输出是我想要的输出。如何实现?我用lapply 尝试了不同的方法,最接近上面的代码是:
lapply(my_list[[i]],function(i)names(i)=paste(names(my_list[i]),1:length(my_list[[i]]),sep="."))
请记住,我仍在学习 apply 函数。
【问题讨论】:
-
您的 for 循环正是我所需要的!我一直在整个 stackoverflow 上寻找一种将列表元素前缀添加到我的列的方法!像魅力一样工作
标签: r