Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导入为data.frame numeric并选择json变量_R_Json - Fatal编程技术网

导入为data.frame numeric并选择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

我有一个.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 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))