rjson是一个R语言与json进行转的包,是一个非常简单的包,支持用 C类库转型和R语言本身转型两种方式。
rjson库,提供的函数只有3个,fromJSON(), newJSONParser(), toJSON()。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于阅读和编写,同时也易于机器解析和生成。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。目前有许多API服务提供了JSON的数据格式。
install.packages("rjson")
library(rjson)
grades=fromJSON("grades.json")
要探索 R 如何处理一段给定数据,可以使用命令 str()
str(grades)
确定要提取哪些数据点,并使用 c()
,或者使用联接,以便提取数据。R 中更有用的一种数据类型是 data.frame
,它是矢量的复合物。为了从示例数据创建 data.frame。
Amy.grade=c(grades[[1]]$grade1, grades[[1]]$grade2, grades[[1]]$grade3)
Bob.grade=c(grades[[2]]$grade1, grades[[2]]$grade2, grades[[2]]$grade3)
Charles.grade=c(grades[[3]]$grade1, grades[[3]]$grade2, grades[[3]]$grade3)
David.grade=c(grades[[4]]$grade1, grades[[4]]$grade2, grades[[4]]$grade3)
All.grades=data.frame(Amy.grade, Bob.grade, Charles.grade, David.grade)
案例二
jsonfile="https://controllerdata.lacity.org/api/views/s234-w655/rows.json?accessType=DOWNLOAD"
#Extract JSON data using rjson
rev <- fromJSON(jsonfile)
str(rev)
datalength <- length(rev$data)
id<-{}
name<-{}
dataTypeName<-{}
fieldName<-{}
position<-{}
renderTypeName<-{}
for (x in 1:datalength) {
id <- c(id,as.integer(noquote(rev$data[[x]][1])))
name <- c(name,toString(noquote(rev$data[[x]][2])))
dataTypeName <- c(dataTypeName,toString(noquote(rev$data[[x]][3])))
fieldName <- c(fieldName,toString(noquote(rev$data[[x]][4])))
position <- c(position,toString(noquote(rev$data[[x]][5])))
renderTypeName<- c(renderTypeName,toString(noquote(rev$data[[x]][6])))
}
#Bind columns and convert it to dataframe
revdata <- as.data.frame(cbind(id,name,dataTypeName,fieldName,position,renderTypeName))
head(revdata)
1、SPSS数据来源
library(foreign)
df <- read.spss("dataset.sav", use.value.label=TRUE, to.data.frame=TRUE)
2、Stata数据来源
library(foreign)
df <- read.dta("dataset.dta")
3、SAS数据来源
First use the code below in SAS (not R) to export data:
# run in SAS
proc export data=dataset
outfile="datast.csv"
dbms=csv;
run;
Now that your data is exported you can import in R by using the code below:
df <- read.csv("dataset.csv",header=T,as.is=T)
还可以直接上传SAS文件到R
library(Hmisc)
df <- sasxport.get("/filename.xpt")
4、CSV数据来源
df <- read.table("dataset.csv", header=TRUE, sep=",")
df <- read.csv("dataset.csv",header=T,as.is=T)
5、TXT数据来源
df <- read.table("dataset.txt", as.is=TRUE, header=T)
df <- read.table("dataset.txt", header=TRUE, sep=",")
df <- read.table("dataset.txt", header=T, strings=F)
6、加载R数据
Save the dataset:
save(df, file="mydata.Rdata")
Load data in R:
load("mydata.Rdata")
Other interesting functions are ls()
which list the objects in the current workspace, rm(objectlist)
which delete objects in your workspace.
三、Export Data from R to TXT,CSV,SPSS or Stata
1、Exporting data to txt
write.table(dt, "mydata.txt", sep=",")
2、Exporting data to csv
write.table(dt, file="mydata.csv",sep=",",row.names=F)
3、Exporting data to spss
, with loading first package foreign
:
library(foreign)
write.foreign(dt, "mydata.txt", "mydata.sps",package="SPSS")
4、Rxporting data to stata
write.dta(dt, "mydata.dta")