读取R中的完整数组,而不是按成员读取它

时间:2016-11-16 14:30:36

标签: r

我正在使用httr在R中检索http响应:

my_recs = POST(url,body=readChar(fileName, file.info(fileName)$size), do.call(add_headers, hd))
my_recs_str = content(my_recs)
my_recs_data = my_recs_str$data

我正在尝试检索存储在my_recs_data中的整套ID,买我只能使用双括号到达它们:

my_ids[i] = my_recs_data[[i]]$id

有没有办法检索所有ID而不通过它们逐个循环? 谢谢。

2 个答案:

答案 0 :(得分:1)

您可以按如下方式对代码进行矢量化:

my_ids = sapply(my_recs_data, `[[`, 'id')

这相当于my_recs_data[[i]][['id']]而不是…$id。但是,在实践中,这不应该有所作为。

答案 1 :(得分:0)

谢谢康拉德!

基于一个属性从嵌套列表创建矢量, 而不是循环:

my_ids[i] = my_recs_data[[i]]$id

我用过:

my_ids = sapply(my_recs_data, `[[`, 'id')

表示两个嵌套属性,而不是循环遍历:

prod_names[i]=my_recs_data[[i]]$productName$FullName

我用过:

prod_names=sapply(my_recs_data, '[[','productName')['FullName',]

而不是最复杂的一个:

sku[i]=my_recs_data[[i]]$productSKU[[1]]$value

我使用了双重祝福:

sku=sapply(sapply(my_recs_data,'[[','productSKU') ,'[[','value')