我首先拆开了xlsx文件,该文件由多张纸组成。
# install.packages("readxl")
library(readxl)
library("rjson")
# read_excel reads
df1 <- read_excel("C:/Users/Adminstrator/Downloads/file.xlsx", sheet = 1)
df2 <- read_excel("C:/Users/Adminstrator/Downloads/file.xlsx", sheet = 2)
df3 <- read_excel("C:/Users/Adminstrator/Downloads/file.xlsx", sheet = 3)
df的内容如下。
Alabama Hoover 33.40556 -86.81111
Alabama Hoover 33.40565 -86.81314
Alabama Hoover 33.40555 -86.81343
Alabama Dothan 31.22722 -85.40722
Alabama Gadsden 34.01028 -86.01028
Alaska Chugiak 61.38778 -149.48139
...
我想用json替换这个xlsx文件。
{
"Alabama" : {
"Hoover": {
"x":[33.40556, 33.40565, 33.40555],
"y":[-86.81111, -86.81314, -86.81343]
},
"Dothan": {
"x":[31.22722],
"y":[-85.40722]
},
...
},
"Alaska" : {
"Chugiak" : {
"x":[61.38778],
"y":[-149.48139]
},
...
}
...
}
如何将xlsx文件更改为json? 请帮我。 感谢。
答案 0 :(得分:3)
split
的{{1}}功能非常有用。
data.table
你得到:
dd <- data.frame(
state = c("Alabama", "Alabama", "Alabama", "Alsaka"),
city = c("Hoover", "Hoover", "Dothan", "Chugiak"),
x = c(1, 2, 3, 4),
y = c(5, 6, 7, 8),
stringsAsFactors=FALSE
)
library(data.table)
dt <- as.data.table(dd)
dt_split <- split(dt, by=c("state", "city"), keep.by=FALSE, flatten=FALSE)
现在使用> dt_split
$Alabama
$Alabama$Hoover
x y
1: 1 5
2: 2 6
$Alabama$Dothan
x y
1: 3 7
$Alsaka
$Alsaka$Chugiak
x y
1: 4 8
:
jsonlite