【发布时间】:2016-03-30 14:21:59
【问题描述】:
我想从 n 的列表中创建一个数据框。每个列表包含 3 个不同的列表。我只对里面的 3 个列表中的 1 个列表感兴趣。我感兴趣的列表是一个包含 12 个变量的 12 个 obs 的 data.frame。
我在 lapply 函数中输入的 tmp 是一个包含每 5 个观察值的 n 列表。 其中 2 个观测值是纬度和经度。这就是我的 lapply 函数的样子:
DF_Google_Places<- lapply(tmp, function(tmp){
Latitude<-tmp$Latitude
Longitude<-tmp$Longitude
LatLon<- paste(Latitude,Longitude, sep=",")
res<-GET(paste("https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=",LatLon,"&radius=200&types=food&key=AIzaSyDS6usHdhdoGIj0ILtXJKCjuj7FBmDEzpM", sep=""))
jsonAnsw<-content(res,"text")
myDataframe<- jsonlite::fromJSON(content(res,"text"))
})
我的问题是:如何从 n 列表中将 12 个变量的 12 个 obs 列表放入数据框中?
谁能帮帮我,谢谢
【问题讨论】:
-
欢迎来到 StackOverflow!请阅读有关how to ask a good question 的信息以及如何提供reproducible example。这将使其他人更容易帮助您。
-
也许使用 lapply() 和 Reduce()。类似于:Reduce(function(...) merge(..., all=TRUE), lapply(list_of_lists, function(x) x[[df_number]]) ))
-
我添加了一些包含我的 lapply 函数的文本
-
您能否再展示几个您正在使用的对象的示例,也许
str(x)其中x是您的对象。取决于它的结构,例如使用x <- list(a=list(b=1,c=2),d=list(b=3,c=4)),您可以尝试这样的事情:y <- do.call(data.frame, list(sapply(names(x[[1]]), function(t) sapply(1:length(x),function(j) x[[j]][[t]]))))