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