Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何从嵌套列表创建数据帧?_R_Json_Dataframe_For Loop_Web Scraping - Fatal编程技术网

R 如何从嵌套列表创建数据帧?

R 如何从嵌套列表创建数据帧?,r,json,dataframe,for-loop,web-scraping,R,Json,Dataframe,For Loop,Web Scraping,我是R(和stackoverflow!)的新手,所以如果这是一个糟糕的问题/描述不好,请客气一点 我试图从嵌套列表中填充数据帧。目前,我有一个嵌套的关于50个请愿书的信息列表,是我从网上搜集的。我想创建一个数据框架,其中包含650个议会选区中每个选区的签名数量,这样每一列都是请愿书,每一行都是选区 因此,目前我可以拨打请愿书(第一个[[1]])和选区(第二个[[1]])的签名号码: 我还设法从选区名称制作了一个数据框 for (i in 1:650){ constituencies[[i]] &

我是R(和stackoverflow!)的新手,所以如果这是一个糟糕的问题/描述不好,请客气一点

我试图从嵌套列表中填充数据帧。目前,我有一个嵌套的关于50个请愿书的信息列表,是我从网上搜集的。我想创建一个数据框架,其中包含650个议会选区中每个选区的签名数量,这样每一列都是请愿书,每一行都是选区

因此,目前我可以拨打请愿书(第一个[[1]])和选区(第二个[[1]])的签名号码:

我还设法从选区名称制作了一个数据框

for (i in 1:650){
constituencies[[i]] <- json[[1]][["data"]][["attributes"]][["signatures_by_constituency"]][[i]][["name"]]
}

constituencies <- data.frame(constituencies)

                                 constituencies
1                                     Aldershot
2                           Aldridge-Brownhills
3                      Altrincham and Sale West
4                                  Amber Valley
5                       Arundel and South Downs
6                                      Ashfield
7                                       Ashford
...
650                   Cardiff South and Penarth

有人能帮忙吗?谢谢:)

我们可以在
for
循环之外初始化
签名

signatures <- vector('list', 50)
for(a in 1:50){
    for(b in 1:650) {
        signatures[[a]][[b]] <-  json[[a]][["data"]][["attributes"]][["signatures_by_constituency"]][[b]][["signature_count"]]
    }
  }

签名我们可以在
for
循环外部初始化
签名

signatures <- vector('list', 50)
for(a in 1:50){
    for(b in 1:650) {
        signatures[[a]][[b]] <-  json[[a]][["data"]][["attributes"]][["signatures_by_constituency"]][[b]][["signature_count"]]
    }
  }

signatures@OwenWinter如果有错误,您可以使用
tryCatch
包装,并为没有任何元素的情况返回NA谢谢!这真的很有帮助。原来我的一份请愿书只收到了649个选区的签名,但我用
解决了这个问题(1:length中的b(json[[a][[“data”]][[“attributes”]][[“signatures”[u by_community”]])
,我会手动处理一个错误的请愿书。@Oweninter如果有错误,您可以使用
tryCatch
进行包装,对于那些没有任何元素的情况返回NA谢谢!这真的很有帮助。原来我的一份请愿书只收到了649个选区的签名,但我用
解决了这个问题(b在1:length(json[[a]][[data]][[attributes]][[attributes]][[signatures\u by\u community”]])
,我将手动处理请愿书,但有一个错误。
Error in json[[a]][["data"]][["attributes"]][["signatures_by_constituency"]][[b]] : 
  subscript out of bounds
signatures <- vector('list', 50)
for(a in 1:50){
    for(b in 1:650) {
        signatures[[a]][[b]] <-  json[[a]][["data"]][["attributes"]][["signatures_by_constituency"]][[b]][["signature_count"]]
    }
  }
signatures <- vector('list', 3)
for(a in 1:3){for(b in 1:2) {signatures[[a]][[b]] <- 1:5}}