如何使用 purrr 从列表中提取元素?
How to use purrr for extracting elements from a list?
我正在尝试使用 purrr
访问此列表中的级别 formatted_address
:
tt <- lapply(c('Austin, Texas', 'Houston, Texas'),
function(x) ggmap::geocode(x, output='all', nameType = 'long', sensor = F))
最终输出应该是$ formatted_address : chr "Austin, TX, USA"
中元素的向量,即c('Austin, TX, USA', 'Houston, TX, USA')
首先,我尝试使用标准索引获取列表中两个元素中第一个元素的记录,然后将其转换为 this tutorial.[=22 之后的 purrr
=]
比如我想
> tt[[1]]$results[[1]]$formatted_address
[1] "Austin, TX, USA"
相当于下面的代码,但它不是:
> map(tt[[1]]$results[[1]], 'formatted_address')
Error in map.poly(database, regions, exact, xlim, ylim, boundary, interior, :
no recognized region names
为什么这两行代码不等价?我如何使用 map
或 map_chr
从 formatted_address
创建一个记录向量?
我认为您的环境中存在命名冲突。因此,您正在调用的 map
函数是来自另一个包的另一个函数(可能是 maps
包,它与您的错误代码中列出的参数匹配,请参阅 here)。尝试调用具有显式上下文的函数,如下所示。此外,稍微更改您的语法,否则您的 return 将为空。
purrr::map(tt, ~.x$results[[1]]$formatted_address)
我正在尝试使用 purrr
访问此列表中的级别 formatted_address
:
tt <- lapply(c('Austin, Texas', 'Houston, Texas'),
function(x) ggmap::geocode(x, output='all', nameType = 'long', sensor = F))
最终输出应该是$ formatted_address : chr "Austin, TX, USA"
中元素的向量,即c('Austin, TX, USA', 'Houston, TX, USA')
首先,我尝试使用标准索引获取列表中两个元素中第一个元素的记录,然后将其转换为 this tutorial.[=22 之后的 purrr
=]
比如我想
> tt[[1]]$results[[1]]$formatted_address
[1] "Austin, TX, USA"
相当于下面的代码,但它不是:
> map(tt[[1]]$results[[1]], 'formatted_address')
Error in map.poly(database, regions, exact, xlim, ylim, boundary, interior, :
no recognized region names
为什么这两行代码不等价?我如何使用 map
或 map_chr
从 formatted_address
创建一个记录向量?
我认为您的环境中存在命名冲突。因此,您正在调用的 map
函数是来自另一个包的另一个函数(可能是 maps
包,它与您的错误代码中列出的参数匹配,请参阅 here)。尝试调用具有显式上下文的函数,如下所示。此外,稍微更改您的语法,否则您的 return 将为空。
purrr::map(tt, ~.x$results[[1]]$formatted_address)