Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
用R编写JSON子对象_Json_R - Fatal编程技术网

用R编写JSON子对象

用R编写JSON子对象,json,r,Json,R,我有一个数据集,我想用JSON进行分组 address city.x state.x latitude.x longitude.x 1 5601 W. Slauson Ave. #200 Culver City CA 33.99718 -118.40145 2 PO 163005 Austin TX 30.31622 -97.858

我有一个数据集,我想用JSON进行分组

                       address         city.x state.x latitude.x longitude.x
    1 5601 W. Slauson Ave. #200    Culver City      CA   33.99718  -118.40145
    2                 PO 163005         Austin      TX   30.31622   -97.85877
    3 10215 W. Jamesburg Street        Wichita      KS   37.70063   -97.43430
    4         14556 Newport Ave         Tustin      CA   33.74165  -117.82127
    5      2496 Falcon Crescent Virginia Beach      VA   36.83840   -76.02862
    6   1306 Wilshire Boulevard   Santa Monica      CA   34.03216  -118.49022
我想将地址和lat/long归为一组,并将其全部归为公司类别

我希望它看起来像这样:

     {company: {address: {address:  "5601 W. Slauson Ave. #200" ,
                          city.x:  "Culver City" ,
                          state.x:  "CA"}},
               {geo: {latitude: "33.99718",
                      longitude: "-118.40145"}}},

     {company: {address: {address:  "PO 163005" ,
                          city.x:  "Austin" ,
                          state.x:  "TX"}},
               {geo: {latitude: "30.31622",
                      longitude: "-97.85877"}}},



    structure(list(address = c("5601 W. Slauson Ave. #200", "PO 163005", 
    "10215 W. Jamesburg Street", "14556 Newport Ave", "2496 Falcon Crescent", 
    "1306 Wilshire Boulevard"), city.x = c("Culver City", "Austin", 
    "Wichita", "Tustin", "Virginia Beach", "Santa Monica"), state.x = c("CA", 
    "TX", "KS", "CA", "VA", "CA"), latitude.x = c(33.997179, 30.316223, 
    37.700632, 33.741651, 36.838398, 34.032159), longitude.x = c(-118.40145, 
    -97.85877, -97.4343, -117.82127, -76.02862, -118.49022)), .Names = c("address", 
    "city.x", "state.x", "latitude.x", "longitude.x"), class = "data.frame", row.names = c(NA, 
    6L))

任何帮助都将不胜感激

以下代码应该输出您想要的内容:

for (i in 1:nrow(df)){
  cat ("{company:{address:{adress:\t\"",df$address[i],
       "\",\n\t\tcity.x:\t\"", df$city.x[i],
       "\",\n\t\tstate.x:\t \"", df$state.x[i],
       "\"}}\n\t {geo:{\tlatitude: \"", df$latitude[i],
       "\",\n\t\tlongitude: \"", df$longitude[i],
       "\"}}},\n", sep="")
}

使用
df
作为数据帧。

另一个选项是使用
rjson

require(rjson)
# This is necessary to avoid duplication of labels in the JSON output
names(df) <- NULL

reshaped <- apply(df, 1, FUN=function(x){list(address=list(
                                                  address = x[1],
                                                  city = x[2],
                                                  state = x[3]),
                                            coords=list(
                                                  latitude = x[4],
                                                  longitude = x[5]))})
result <- toJSON(reshaped)
require(rjson)
#这是避免JSON输出中标签重复所必需的
姓名(df)