我正在使用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而不需要逐个循环?谢谢你。
您可以对代码进行如下矢量化:
my_ids = sapply(my_recs_data, `[[`, 'id')
这相当于my_recs_data[[i]][['id']]
而不是…$id
。然而,在实践中,这应该没有什么不同。
谢谢你!
从基于一个属性的嵌套列表中创建一个向量,而不是循环通过:
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
我使用了double sapply:
sku=sapply(sapply(my_recs_data,'[[','productSKU') ,'[[','value')