导入为data.frame numeric并选择json变量
我有一个.csv文件,有两个数字列和一个json格式。我想从json列导入数字列和一些变量。json列有数百个变量,其中许多变量具有相同的名称,我只感兴趣的是几个:是否有方法使用它们的编号位置从json导入一个选择数量的变量导入为data.frame numeric并选择json变量,r,json,R,Json,我有一个.csv文件,有两个数字列和一个json格式。我想从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
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:想象一下我想以data.frame的形式导入R中的address和zip,以及json响应变量(Building Lat和Lon)中的前两个变量
这与本例中的答案有些关联,但无法复制。我尝试过Jsonlite软件包,但无法绕过它。这就是您想要的吗
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)
require(jsonlite)
df这不是一个CSV格式的文件。这正是我想要的小例子,我在那里展示,谢谢!但当我尝试对完整的数据库执行此操作时,我得到以下错误,您知道我缺少的T/F是什么吗?if(is.character(txt)&&length(txt)==1&&nchar(txt,type=“bytes”)<:缺少真/假所需的值您可能有一些JSON单元格丢失或格式不正确。请先尝试筛选它们。例如,尝试df%>%筛选(!is.na(response))
。