我正在使用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而不通过它们逐个循环? 谢谢。
答案 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')