RJSONIO& R地理编码中的Google地理编码服务 - 一些小问题

时间:2012-01-18 20:50:11

标签: r geocoding

这是一个非常简单的地理编码示例。但是,此代码在运行时会抛出警告并且data.json为空 -

data.json <- fromJSON(paste(readLines(url("http://maps.google.com/maps/api/geocode/json?sensor=false&address=india"))))
  

警告消息:1:在if(is.na(encoding))中返回(0L):.   条件的长度> 1,只使用第一个元素

     

2:在if(is.na(i)){:条件有长度&gt; 1而且只有   将使用第一个元素

> length(data.json)

[1] 0

但是,当我更改代码并将readLines块放在paste块中时,它会起作用:

> data.json <- fromJSON(paste(readLines(url("http://maps.google.com/maps/api/geocode/json?sensor=false&address=india")), collapse=""))
> length(data.json)

[1] 2

这是为什么? paste(..., collapse="")做了什么来摆脱警告和data.json完成。

1 个答案:

答案 0 :(得分:0)

在第一种情况下,您将一个字符串向量(每行一个字符串)传递给fromJSON函数,该函数需要一个字符串。它试图处理第一个元素,它不是一个完整的JSON消息:它不起作用,并且有一些警告。

在第二种情况下,您将这些行连接成一个字符串,并且按预期工作。