在 R 中,我有一个由元素数量不等的对象组成的列表。例如,
l <- list(a=c(1,2), b=3, c=4)
我已经弄清楚如何找到任何对象的最大长度:
lmax <- max(unlist(lapply(l,length)))
以及如何识别哪些对象不是最长的:
notlongest <- unlist(lapply(l,length)) != max(unlist(lapply(l,length)))
我现在需要做的:对于列表中的那些对象notlongest
,重复它们的元素次数lmax
并获得一个新列表。也就是说,对于对象 b 和 c,重复它们的元素两次,这样我就得到了一个看起来像这样的新列表:
newl <- list(a=c(1,2), b=c(3,3), c=c(4,4))
我确信该lapply
功能有一个简单的答案,但我无法弄清楚。抱歉,如果以前有人问过这个问题。谢谢!