我有一个自动生成的长json文件,其中包含JSON密钥中的不间断空格(不要问我为什么......)。我没有找到一个解决方案来正确导入R中的键+值。不间断空格位于键'Rain in \ u00a0mm \'
这里有一些可重复的数据:
#library(jsonlite)
library(rjson)
library (plyr)
test_data <- fromJSON("[{\"_id\":\"QuWQsXzuqiiAgYM9b\",\"cronjobname\":\"Precip_test\",\"cronjobid\":\"wLbS9XwREnvaChoyu\",\"cronjobtyp\":\"importTestData\",\"datasource\":\"importTestData\",\"data\":[{\"City\":\"New York\",\"Type\":\"Precip\",\"Time\":\"30.04.2016 11:30\",\"Rain in\\u00a0mm\":0}],\"createdAt\":\"2016-05-01T12:10:01.001Z\",\"createdBy\":null,\"modifiedAt\":\"2016-05-01T12:10:01.001Z\",\"modifiedBy\":null}]")
我尝试用gsub("[[:space:]]", " ", names(x))
替换所有类型的空格,然后让make.names
自动生成键名。但是,我仍然无法在我的数据框中显示“Rain in mm”键。无论我做什么,只有城市和时间出现。关于我缺少的任何提示?
test <- lapply(test_data[[1]]$data, function(x) {
x[sapply(x, is.null)] <- NA
gsub("[[:space:]]", " ", names(x))
make.names(names(x))
c(x$City, x$Rain.in.mm, x$Time)
})
test <- ldply (test)
str(test)
此处还有代码,可以查看gsub
和make.names
执行的操作:
make.names(names(test_data[[1]]$data[[1]]))
gsub("[[:space:]]", " ", names(test_data[[1]]$data[[1]]))