0

我正在尝试使用他们的 API 从 OpenEI 数据库中提取一些数据并将其转换为可用的格式,但是我无法提取一些数据。例子是这样的:

library(RCurl)
library(rjson)

rate_name <- 'Data:B386166e-7e84-42fa-b8ae-1a4b07fb05d9'

data <- getURL(paste('http://en.openei.org/services/rest/utility_rates?version=2&format=json&detail=full&getpage=' ,rate_name, '&detail=full', sep = ''))

data2 <- fromJSON(data)

x <- 3

现在:

data2$items[[1]]$`energyratestructure/period3/tier1rate`

 [1] 0.0573

和:

 > paste('data2$items[[1]]$`energyratestructure/period', x, '/tier1rate`', sep = '')
[1] "data2$items[[1]]$`energyratestructure/period3/tier1rate`"

但:

> get(paste('data2$items[[1]]$`energyratestructure/period', x, '/tier1rate`', sep = ''))
Error in get(paste("data2$items[[1]]$`energyratestructure/period", x,  : 
object 'data2$items[[1]]$`energyratestructure/period3/tier1rate`' not found

我需要一种方法来获取制作的对象的价值paste()——第一个对象。这可能很容易,但我不知所措。

4

1 回答 1

4

您不能使用get提取对象的一部分。只需使用标准的索引操作符[[,并用 . 构造标签paste

data2$items[[1]][[paste0("energyratestructure/period", x, "/tier1rate")]]

(澄清一下,如果您还不知道:x$y与 相同x[["y"]],其中"y"是一个字符串,给出了您要提取的元素的名称。)

于 2013-10-25T02:05:25.853 回答