我有一个带有两个数字列和一个json格式的.csv文件。我想导入数字列以及json列中的一些变量。 json列有几百个变量,其中很多都有相同的名称,我只对一些变量感兴趣:有没有办法从json中使用它们的数字位置导入一定数量的变量?
address | zip | response
102 N8 st 11248 {"Building Lat": "74.91", "Lon": "31.21", "Front Lat": "75.93", "Lon": "32.20"}
76 Hope st 14258 {"Building Lat": "75.82", "Lon": "29.18", "Front Lat": "76.89", "Lon": "28.12"}
当我作为read_csv导入时,我得到一个类似于上面例子的tibble:想象我想导入R中的data.frame地址和zip,以及来自json响应变量的前两个变量(建立Lat和Lon)。
这与this question有些相关,但在此示例中无法复制该答案。我已经尝试过Jsonlite包,但无法解决它。
答案 0 :(得分:1)
这就是你想要的吗?
require(jsonlite)
df <- data.frame(address = c("102 N8 st", "76 Hope st"),
zip = c(11248, 14258),
response = c('{"Building Lat": "74.91", "Lon": "31.21", "Front Lat": "75.93", "Lon": "32.20"}',
'{"Building Lat": "75.82", "Lon": "29.18", "Front Lat": "76.89", "Lon": "28.12"}'),
stringsAsFactors = FALSE)
x1 <- sapply(df$response, FUN = function(x) {as.numeric(fromJSON(x)[[1]])})
x2 <- sapply(df$response, FUN = function(x) {as.numeric(fromJSON(x)[[2]])})
names(x1) <- NULL
names(x2) <- NULL
new_df <- data.frame(address = df$address,
zip = df$zip,
x1 = x1,
x2 = x2)