【发布时间】:2019-04-08 20:55:53
【问题描述】:
我正在尝试解析包含在数据框列中的 JSON,其中一些已损坏。作为第一步,我想识别损坏的行,并使用它来子集数据帧。
我正在使用this post 中的技巧使用c() 来填充列表(尽管我知道它很慢):
myRows <- c()
for (i in 1:nrow(myDataframe)) {
tryCatch({myDataframe$myJSONstring[i] %>%
fromJSON() %>%
length()},
error = function(e) {print(i); myRows <- c(myRows, i)})
}
但是,这不起作用。 print(i) 工作正常,但在运行循环后 myRows 仍然只是一个空列表。在 tryCatch 的错误位中可以运行哪些代码是否有一些限制?
【问题讨论】:
-
这是一个范围问题(您在函数的本地范围内进行分配)。你可能可以做
myRows <<- c(myRows, i),但我不确定如果不测试它。tryCatch中的范围有点复杂。最好你应该重新设计整个方法。