R 如何将列表转换为其中一个字段的值向量?
现在我想从这个列表中提取R 如何将列表转换为其中一个字段的值向量?,r,list,field,R,List,Field,现在我想从这个列表中提取qwertys;ie我想获得一个等价的c(5,55,555),因为这个列表中连续元素的qwerty字段的值是5,55,555 如何获得这个 (如果我陷入XY:我真正想要实现的是得到这个列表中qwerty字段具有最大值的元素;我认为获得这个值的一种方法是将qwerty提取到一个中间数值,然后我可以调用max打开)我们可以拔出这个“qwerty”元素,通过使用map l = list() l[[1]] = list(); l[[1]]$asdf = 'jkl'; l[[1]]
qwerty
s;ie我想获得一个等价的c(5,55,555)
,因为这个列表中连续元素的qwerty
字段的值是5
,55
,555
如何获得这个
(如果我陷入XY:我真正想要实现的是得到这个列表中
qwerty
字段具有最大值的元素;我认为获得这个值的一种方法是将qwerty
提取到一个中间数值,然后我可以调用max
打开)我们可以拔出这个“qwerty”元素,通过使用map
l = list()
l[[1]] = list(); l[[1]]$asdf = 'jkl'; l[[1]]$qwerty = 5
l[[2]] = list(); l[[2]]$asdf = 'zxcv'; l[[2]]$qwerty = 55
l[[3]] = list(); l[[3]]$asdf = 'poiu'; l[[3]]$qwerty = 555
或者使用baser中的sapply
library(tidyverse)
map_dbl(l, pluck, "qwerty")
#[1] 5 55 555
用max
换行以获取最大值
sapply(l, `[[`, "qwerty")
#[1] 5 55 555
如果它是列表的元素
max(sapply(l, `[[`, "qwerty"))
#[1] 555
i1 <- which.max(sapply(l, `[[`, "qwerty"))
l[i1]
#[[1]]
#[[1]]$asdf
#[1] "poiu"
#[[1]]$qwerty
#[1] 555
l %>%
transpose %>%
.$qwerty %>%
unlist %>%
which.max %>%
magrittr::extract(l, .)