整个过程先瞄下先
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
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] :=一定要有的,结果如下
除上面那个注意点之外呢,它的强大之处在于
当然更可以这样
更可以以更快的速度来读取