数据清洗与收集week1

来源:互联网 发布:mac充电器怎么用 编辑:程序博客网 时间:2024/05/16 00:36

整个过程先瞄下先






2 下载文件




亲身痛苦的实验,发现在window中不需用curl方法,自己还在那实验半天,哎哎,另外,如果还不行的话,将https改为http可能会有效一些,https比http多了个安全协议


读取当地文件

read.table()中一定要设置分隔符sep="",

而read,csv()中默认设置分隔符为comma,header=true,因为csv中是以逗号为分隔符的




读取excel数据




读取XML数据



 library('XML')
 fileurl <- "http://www.w3schools.com/xml/simple.xml"  输入url地址

doc <-xmlTreeParse(fileurl,useInternal=TRUE)       好像是读取全部文件的意思,若不加后面那个useInternal,则会出现很多属性

rootNode <- xmlRoot(doc)所有的结点 类似于the entire document

xmlName(rootNode) 根结点名字

names(rootNode)次结点名字








不知道htmlTreeParse与xmlTreeParse之间的区别呢


读取json数据

读入jsonlite包:library(jsonlite)

读取数据:jsondata <- fromJSON("网站地址“)

查看名字:names(jsondata)

names(jsondata$owner)查看owner下的所有对象名

jsondata$owner$login查看owner下的login

myjson<- toJSON(iris,pretty=TRUE)转换成JSON形式,若无pretty=TRUE,则看起来很难受,所有数据全在一行,有的话,会很好看

cat(myjson)附用法 ?+要查的东西,也可以查函数,如?cat

cat(…, file=”", sep=” “, append=FALSE)
Print output to the screen or to a file. Use cat to print information to an end-user from a function. cat is also useful for writing information that is being processed or generated, one or more lines at a time, to a file.

iris2 <- fromJSON(myjson)

head(iris2) 取前六个 ,与之对应的是tail()取后几个


用data.table来读数据

继承了data.,frame(例子中DT即我写的da)

所有能在data,.frame上工作的函数也能在data,,table上工作

用c 写的所以日快

提取子集,分组和更新数据的时候表现的更更快

data table 可以像data frame一样使用

如library(data.table)

da=data.frame(x=rnorm(9),y=rep(c("a","b","c"),each=3),z=rnorm(9))此处将data.frame改为data.table也是一样的

可以通过tables()来查看其内存情况

抽取行:da[2,]抽第二行      da[da$y=="a"]             da[c(2,3)]抽取第二三行

抽取列     da[,c(2,3)]在dataframe中是抽取第二和第三列,而在table中则是显示  [1] 2  3不知何意呢,如下可见,用列的表示方法得出不是想象中这样

以下是列的用法

此处;就是两个expression的意思,前者为print(10),后者为将5赋值给k



此处当用data.frame形式来加列的话,会在内存中复制一份,再将列加上去,于是内存中有了两份数据,对于大数据而言,很不幸的说呢

而用table形式则无此不良后果,但也会有危险,如下下张图中所示


先写下,再看代码da1<-da       da[,y:=2]     :=一定要有的,结果如下


除上面那个注意点之外呢,它的强大之处在于




当然更可以这样




更可以以更快的速度来读取




0 0
原创粉丝点击