【发布时间】:2015-02-24 07:18:08
【问题描述】:
我正在使用 fromJSON() 将 Web 服务中的 JSON 数据提取到 R 中。
此函数将数据返回到多维 R 列表 (x)。
我的目标是使用 duration$value 将此列表从级别 $rows 转换为 x,y 矩阵。
我想我可以过滤列表以返回 duration$value,然后使用类似
output <- matrix(unlist(x$rows), ncol = 4, byrow = TRUE)
过滤列表以返回 duration$value 的最佳方法是什么?
dput(x$rows)
list(structure(list(elements = list(structure(list(distance = structure(list(
text = "1 m", value = 0), .Names = c("text", "value")), duration = structure(list(
text = "1 min", value = 0), .Names = c("text", "value")),
status = "OK"), .Names = c("distance", "duration", "status"
)), structure(list(distance = structure(list(text = "27.0 km",
value = 26970), .Names = c("text", "value")), duration = structure(list(
text = "5 hours 25 mins", value = 19487), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")), structure(list(distance = structure(list(text = "59.4 km",
value = 59410), .Names = c("text", "value")), duration = structure(list(
text = "12 hours 11 mins", value = 43836), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")), structure(list(distance = structure(list(text = "43.0 km",
value = 42976), .Names = c("text", "value")), duration = structure(list(
text = "8 hours 45 mins", value = 31526), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")))), .Names = "elements"), structure(list(elements = list(
structure(list(distance = structure(list(text = "27.0 km",
value = 26970), .Names = c("text", "value")), duration = structure(list(
text = "5 hours 25 mins", value = 19490), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")), structure(list(distance = structure(list(text = "1 m",
value = 0), .Names = c("text", "value")), duration = structure(list(
text = "1 min", value = 0), .Names = c("text", "value"
)), status = "OK"), .Names = c("distance", "duration", "status"
)), structure(list(distance = structure(list(text = "55.5 km",
value = 55488), .Names = c("text", "value")), duration = structure(list(
text = "11 hours 27 mins", value = 41231), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")), structure(list(distance = structure(list(text = "19.7 km",
value = 19744), .Names = c("text", "value")), duration = structure(list(
text = "4 hours 4 mins", value = 14629), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")))), .Names = "elements"), structure(list(elements = list(
structure(list(distance = structure(list(text = "59.4 km",
value = 59354), .Names = c("text", "value")), duration = structure(list(
text = "12 hours 7 mins", value = 43640), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")), structure(list(distance = structure(list(text = "55.5 km",
value = 55487), .Names = c("text", "value")), duration = structure(list(
text = "11 hours 24 mins", value = 41039), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")), structure(list(distance = structure(list(text = "1 m",
value = 0), .Names = c("text", "value")), duration = structure(list(
text = "1 min", value = 0), .Names = c("text", "value"
)), status = "OK"), .Names = c("distance", "duration", "status"
)), structure(list(distance = structure(list(text = "39.1 km",
value = 39111), .Names = c("text", "value")), duration = structure(list(
text = "7 hours 58 mins", value = 28703), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")))), .Names = "elements"), structure(list(elements = list(
structure(list(distance = structure(list(text = "43.0 km",
value = 42976), .Names = c("text", "value")), duration = structure(list(
text = "8 hours 48 mins", value = 31656), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")), structure(list(distance = structure(list(text = "19.7 km",
value = 19744), .Names = c("text", "value")), duration = structure(list(
text = "4 hours 5 mins", value = 14694), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")), structure(list(distance = structure(list(text = "39.1 km",
value = 39113), .Names = c("text", "value")), duration = structure(list(
text = "8 hours 3 mins", value = 28957), .Names = c("text",
"value")), status = "OK"), .Names = c("distance", "duration",
"status")), structure(list(distance = structure(list(text = "1 m",
value = 0), .Names = c("text", "value")), duration = structure(list(
text = "1 min", value = 0), .Names = c("text", "value"
)), status = "OK"), .Names = c("distance", "duration", "status"
)))), .Names = "elements"))
【问题讨论】:
-
@docendodiscimus 这给了我第一列。实际上有 4 列。
标签: r matrix type-conversion nested-lists