使用get with back-tics并粘贴到R中

时间:2013-10-25 02:01:00

标签: r get

我正在尝试使用他们的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()中对象的值 - 第一个对象。这可能很容易,但我不知所措。

1 个答案:

答案 0 :(得分:4)

您不能使用get来提取对象的一部分。只需使用标准索引运算符[[,并使用paste构建标签。

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

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