如何在R中仅使用lappy命名列表元素
这是我的清单:如何在R中仅使用lappy命名列表元素,r,apply,lapply,R,Apply,Lapply,这是我的清单: l <- vector("list", 4) l[[1]][1] <- list(c(1,2,3)) l[[1]][2] <- list(c(1,2,3)) l[[2]][1] <- list(c(1,2,3)) l[[2]][2] <- list(c(1,2,3)) l[[3]][1] <- list(c(1,2,3)) l[[3]][2] <- list(c(1,2,3)) l[[4]][1] <- list(c(1,2,
l <- vector("list", 4)
l[[1]][1] <- list(c(1,2,3))
l[[1]][2] <- list(c(1,2,3))
l[[2]][1] <- list(c(1,2,3))
l[[2]][2] <- list(c(1,2,3))
l[[3]][1] <- list(c(1,2,3))
l[[3]][2] <- list(c(1,2,3))
l[[4]][1] <- list(c(1,2,3))
l[[4]][2] <- list(c(1,2,3))
有什么帮助吗?lappyl()的第二个参数必须是函数。可以使用
setNames()
:
named_list您可以使用“特殊”函数的函数形式,如lappy(l`names@r2evans非常感谢。这太神奇了。我是拉普莱的乞丐。当你做names(x)这样的事情时,我怎么能理解更多这个单词,比如names我假设Laura在命名数据时不希望丢弃数据。也许从内部函数返回a
?通过添加names=
参数,很好地保留了作用域。@r2evans感谢您的评论。我更新了答案。@Florian非常感谢。@r2evans非常感谢。正如我所说的,我是Lappy的乞丐。我如何才能找到它更多地理解这个sintax,比如names,甚至考虑左手函数,setNames
:lappy(l,函数(x)setNames(x,mynames))
lapply(l, names(x) <- mynames)
named_list <- lapply(l, setNames, nm=mynames)
named_list[1:2]
[[1]]
[[1]]$`number one`
[1] 1 2 3
[[1]]$`number two`
[1] 1 2 3
[[2]]
[[2]]$`number one`
[1] 1 2 3
[[2]]$`number two`
[1] 1 2 3
named_list2 <- lapply(l, function(x, names) { names(x) <- names; x },
names=mynames)
identical(named_list, named_list2)
[1] TRUE