R中内置的数据集 R的基本分发包中有一个叫做datasets,里面全是示例数据集,使用data函数来查看你已成功加载的包的数据集
> data()
需要更完整的列表,包括以安装的所有包的数据
> data(package = .packages(TRUE))
read,tabke 函数可用于读取以空格符为分隔的文件 read.csv 函数默认设置分隔符为逗号,read.csv2默认以逗号作为小数位 skip用于跳过几行 nrow 是指定读取的行数
read.delim和read.delim2分别使用句号和小数位作为分隔符
> crab_file <- system.file("extdata","crabtag.csv",package = "learningr") > (crab_id_block <- read.csv(crab_file,header = TRUE,skip = 3,nrows = 2)) Firmware.Version.No X2 1 Firmware Build Level 70 2 The following data are the Tag notebook contents NAcrabtag.csv默认安装在extdata文件夹下
readLInes函数用来读取非结构化文本文件 先读入文件中所有的文本行,再对其内容进行操作
> text_file <- system.file("extdata","Shakespeare's The Tempest,from Project Gutenberg pg2235.txt",package = "learningr") > the_tempest <- readLines(text_file) Warning message: In file(con,"r") : file("") only supports open = "w+" and open = "w+b": using the former > the_tempest[1926:1927] [1] NA NA
可以读取XML文件 首先安装包
> install.packages("XML")xmLParse函数来导入XML数据
> library(XML) > xml_file <- system.file("extdata","options.xml",package = "learningr") > r_option <- xmlParse(xml_file)
使用内部节点的一个问题就是 不能用head 和str函数,要使用R级函数的 可以用以下两种方法
> xmlParse(xml_file,useInternalNodes = FALSE) $doc $file [1] "E:/RsoftWare/R-3.2.2/library/learningr/extdata/options.xml" $version [1] "1.0" $children $children$root <root> <variable name="add_smooth" type="character"> <value>TRUE</value>
> xmlTreeParse(xml_file) $doc $file [1] "E:/RsoftWare/R-3.2.2/library/learningr/extdata/options.xml" $version [1] "1.0" $children $children$root <root> <variable name="add_smooth" type="character"> <value>TRUE</value> </variable> <variable name="browserNLdisabled" type="character"> <value>FALSE</value>
XPATH是用于查询XML文档的语言,过滤某些规则来寻找相应的节点, 寻找variable节点,此节点[]的name属性@包含了contains了warn字符串
这是对于文件截取后 也就是system,file文件操作后的文件进行操作
htmlParse 和 htmlTreeParse 适用于HTML页面导入的函数
XML包提供了序列化,即存储的功能
> library(Runiversal) > > ops <- as.list(options()) > cat(makexml(ops),file = "options.xml")我的电脑是默认存贮在D盘的文档中
JSON文件是WEB程序彼此之间传递数据的标准
两个包常用于处理JSON RJSONIO比较推荐 rjson有问题
::用于把相同名字的函数从不同的包中解析出来 首先就要下载包和加载包了 就不说了
> library(RJSONIO) > library(rjson)
> city_file <- system.file("extdata","Jamaican Cities.json",package = "learningr") > jamacia_city <- RJSONIO::fromJSON(city_file)RJSON把每个城市的坐标都转化为向量,可以通过simplify = false 来关闭,产生的数据和rjson一样
RJSONIO把NAN和NA映射为JSON的null,但保留正负无穷rjson把这些值转化为字符串
yaml包常用于处理特殊数字类型 as,yaml则用于把R对象转化为YAML字符串
http://www.biostatistic.net/thread-74482-1-1.html 具体可以看这个文章 有关各个参数的解析
> special <- c(NaN,NA,Inf,-Inf) Warning message: closing unused connection 3 () > special [1] NaN NA Inf -Inf > RJSONIO::toJSON(special) [1] "[ null,null,Infinity,- Infinity ]" Warning message: In .local(x,container,collapse,...,.level = .level,.withNames = .withNames,: non-fininte values in numeric vector may not be approriately represented in JSON > rjson::toJSON(special) [1] "[\"NaN\",\"NA\",\"Inf\",\"-Inf\"]"