我有以下列表:
lst = list(
cat = c("room","shower","garden"),
dog = c("street", "garden")
)
我希望能够获得输出:
list(
list(
animal="cat",
place ="room"
),
list(
animal="cat",
place ="shower"
),
list(
animal="cat",
place ="garden"
),
list(
animal="dog",
place ="street"
),
list(
animal="dog",
place ="garden"
)
)
目前,我正在使用以下代码:
library(plyr)
grasp <- function(animal, places)
{
llply(places, function(u) list(animal=animal, place=u))
}
Reduce(append, Map(grasp, names(lst), lst))
但也许有更加优雅/简洁/新颖的选择吗?