加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

R语言之数据获取

(2016-05-31 10:58:07)
分类: R语言学习
一、rjson及RJSONIO包介绍

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)

二、Import Data from SPSS, Stata, SAS, CSV or TXT

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")








0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有