【发布时间】:2018-12-20 05:35:11
【问题描述】:
我有一群人,他们具有关于他们是否活着、他们的性别和年龄的属性:
ind <- vector(mode="list", 10)
for(i in seq(ind)){
ind[[i]]$alive <- 1
ind[[i]]$sex <- sample(c("female","male"),1)
ind[[i]]$age <- round(runif(1, min=1, max=10))
}
ind
使用 lapply,我可以增加每个人的年龄,并获取个人列表及其所有属性:
lapply(ind,function(x){x$age <- x$age+1; x})
是否有来自 purrr 的 map 函数可以做同样的事情(提供与 lapply 相同的输出)?当我使用 map() 时,我只返回一个年龄列表,而不是每个人的所有属性:
map(ind, ~.$age+1)
【问题讨论】:
-
这可能不是最干净的方式,但您在
lapply中使用的逻辑同样适用于map-map(ind, ~{.$age <- .$age+1; .})