三. 导入数据

图02-03:Source of data that can be imported into a dataset

11. 从键盘导入数据

(1)可能是最简单的数据导入方式。

(2)使用edit()函数,R将会打开一个文本编辑器,然后再手动的输入数据。具体步骤如下:

· 创建一个新的数据帧(data.frame),并填入变量名和类型(variable names&modes);

· 调用文本编辑器,键入数据,并保存结果到数据对象上(data object).

例02-21:从键盘导入数据

· gender=character(0):创建一个变量gender,并指定其类型为character,但并没有实际赋值;

·编辑后,其值直接赋给对象自身(object itself),此处为mydata;

·调用edit函数后,有一个数据编辑器的窗口打开,我们可以向里面键入需要的数据,即相当于数据的导入;

完成数据的输入后,直接关闭该数据编辑器的窗口,数据已经保存了;

然后再在RStudio中调用edit()函数,又调出该数据编辑器窗口,此时,前面输入的数据都存在,点击第一行的变量,可以改变其变量名和变量类型。

问题:不明白什么是因子水准,为什么会这样?

12. 从分隔符号文档(limited text file)中导入数据

使用read.table()函数:以表格形式(table format)读取一个文件,并保存为数据帧(data.frame)格式。

mydataframe<-read.table(file,header=logical_value,sep="delimiter",row.names="name")

·file:必须是ASCII格式的;

·header:只能是逻辑值,即TRUE或FALSE,意味着第一行是否包含一个变量名;

·sep:指定划分数据的值(delimiter separating data value);

·row.names(可选项):指定一个或多个变量来表示行标识符。

注意:

(1)要导入的文件应该先存在与用户的计算机上。

(2)R语言提供了很多机制通过关联得到数据。例如:

·函数file(),gzfile(),bzfile(),xzfile(),unz(),url()可以用来代替文件名;

·file():通过文件夹,剪切板,C级标准输入(C-level standard input)获得文件;

·gzfile(),bzfile(),xzfile(),unz():让用户读压缩文件;

·url():得到互联网文件(internet files),通过包含http://或ftp://或file://的完全URL路径;

可以指定HTTP或HTP代理服务器;

通常,完全URL路径(包含“”)能直接代替文件名。

问题:怎么导入一个文件呢?比如.csv格式,.txt格式,.xls格式?? 这一部分并没有在RStudio中运行出有效代码,感觉比较空;主要问题是不能正确的导入文件。

13. 从Excel表格中导入数据

(1)Windows系统下,使用RODBC包来导入Excel文件

·导入RODBC包:install.packages("RODBC")

·导入数据:library(RODBC)

channel<-odbcConnectExcel("myfile.xls")

mydataframe<-sqlFetch(channel,"mysheet")

odbcClose(channel)

·myfile.xls:是一个Excel文件;

·mysheet:是该Excel文件的名字;

(2)Excel2007是一个XLSX格式的文件,其本质是XML的压缩文件,故应先安装xlsx包:library(xlsx) ;

read.xlsx():把工作表(worksheet)从Excel文件中导入,变成一个数据帧(data.frame);

read.xlsx(file,n):file表示要导入的Excel2007工作表的路径,n表示要导入的工作表的数量。

14. 从XML导入数据

www.omegahat.org/RSXML

http://www.omegahat.org/RSXML/MemoryManagement.html

15.从webscraping导入数据

webscaping:用户直接从网页提取信息,并且保存为R数据结构,以便进一步分析;

readLines():下载网页;

grep(),gsub():操作网页.

16.从SPSS导入数据

(1)read.spss()函数:在包foreign中;

(2)spss.get()函数:在包Hmisc中,是一个包装函数(wrapper function),为read.spss()设置值。

安装包:   install.packages("Hmisc")

导入数据:library(Hmisc)

mydataframe<-spss.get("mydata.sav",use.value.lables=TRUE)

· mydata.sav:是待导入的spss数据文件;

· use.value.lables=TRUE:把有标签值的变量(variables with value lables)转换为具有相同标签值的R因子(factor),并把结果放在mydataframe中。

17.从SAS导入数据

read.ssd()函数:在包foreign中;

sas.get()  函数:在包Hmisc中。

18.从Stata中导入数据

在R中,可以直接从Stata中导入数据;其需要的代码如下:

library(foreign)

mydataframe<-read.dta("mydata.dta")

·mydata.dta是Stata数据集,mnydataframe是R的数据帧(data frame).

19.从netCDF中导入数据

(1)Unidata's netCDF(network Common Data Form)开源软件包含ma-chine-independent 数据格式,用于创建,分布数组导向的科学数据;

(2)ncdf包和ncdf4包提供了高级接口,能连接到netCDF的数据文件;但是ncdf包适用于windows系统,而ncdf4包不适用于windows系统;

(3)library(ncdf)

nc<-nc_open("mynetCDFfile")

myarray<-get.var.ncdf(nc,myvar)

·netCDF文件夹中的文件mynetCDFfile的变量myvar变量包含了所有的数据,导入R中并保存为myarray .

20. 从HDF5导入数据

(1)HDF5(Hierarchical Data Format)是适用于管理超大数据集的软件技术。

(2)hdf5包:用于把R对象(R object)写入一个文件,该文件能被理解HDF5格式的软件读入。

(3)在R中,对HDF5的支持仍然很有限。

21. 获得DBMSs(database management systems)

(1)R与许多DBMSs都有接口,如Micorsoft SQL Server,Microsoft Access,MySQL,Oracle...有些包获得路径通过本地本地数据驱动,另一些则是通过ODBC或JDBC。

(2)ODBC接口

(3)DBI-RELATED包

22.通过Stat/Transfer导入数据

Stat/Transfer是一个独立操作的应用,可以在34种数据格式中,进行数据转换,包括R这种数据。

www.stattransfer.com

四. 对数据集进行注释

23.变量标签(variable labels)

(1)R处理变量标记的能力是有限的;

(2)一种方式是用变量标签作为变量的名字,然后通过其位置索引值来指代变量;

如:names(patientdata)[2]<-"Age at hospitalization(in years)"

·对变量age重命名,但是Age at hospitalization(in years)这个名字太长了,使用起来不方便;故可用patientdata[2]来指代。

24.值标签(value lables)

factor()函数能用来为绝对变量(categorical variables)创建一个值标签。

如:patientdata$gender<-factor(patientdata$gender,levels=c(1,2),levels=c("male","female"))

小结:数据格式了解了一大堆,但是没有实际的数据可以让我来导入,就没能实际操作,就当了解一下概念吧,但是这样的学习很浅;

后面学了后,还需要返回来再看一下,最好能找到相关的数据集,实际操作一下。

Chapter 02—Creating a dataset(Part2)的更多相关文章

  1. Chapter 02—Creating a dataset(Part3-补充材料Stat/Transfer)

    Stat/Transfer:在电子表格(worksheet),数据库(database),统计包(statistical package)间进行数据转换,具有简单高效的特点. 资料来源于:http:/ ...

  2. Chapter 02—Creating a dataset(Part1)

    一. 数据集 1. 在R语言中,进行数据分析的第一步是创建一个包含待研究数据并且符合要求的数据集. · 选择装数据的数据结构 · 把数据装入数据结构中 2. 理解数据集 (1)数据集通常是矩形的数据列 ...

  3. advanced dom scripting dynamic web design techniques Chapter 2 CREATING YOUR OWN REUSABLE OBJECTS

    JavaScript is all about objects. Objects are the foundation of everything, so if you’re unfamiliar w ...

  4. MySQL Crash Course #13# Chapter 21. Creating and Manipulating Tables

    之前 manipulate 表里的数据,现在则是 manipulate 表本身. INDEX 创建多列构成的主键 自动增长的规定 查看上一次插入的自增 id 尽量用默认值替代 NULL 外键不可以跨引 ...

  5. java1234教程系列笔记 S1 Java SE chapter 02 写乘法口诀表

    一.水仙花数 1.方式一:这是我的思路,取各个位数的方式.我个人习惯于使用取模运算. public static List<Integer> dealNarcissiticNumberMe ...

  6. java1234教程系列笔记 S1 Java SE chapter 02 lesson 03 java基本数据类型

    第二章 第三节 数据类型 3.1 分类 基本数据类型.引用类型 3.2整型 byte 8 short 16 int  32 long 64 作业: A:1-10求和 B:float double 的最 ...

  7. Chapter 02:复合 VS 继承

    复合优先于继承,继承是实现代码重用的有力手段,并不是所有情况都适用,使用不当会导致软件变得很脆弱.与方法调用不同的是,继承打破了封装性. 总而言之,组合和继承,都能实现对类的扩展.但是要分具体情况用哪 ...

  8. Chapter 02 - Let's Get Started(C#篇)

    详细解释,书上有哈.直接上代码和结果. Xcode下的自定义类 (通过new file-> cocoa class创建,保持和书中名字一样RandomController),自定义的fields ...

  9. Client Dataset Basics

    文章出处:  http://www.informit.com/articles/article.aspx?p=24094 In the preceding two chapters, I discus ...

随机推荐

  1. 前端技术之:JSON.stringfy详细说明

    JSON.stringify() 语法JSON.stringify(value[, replacer[, space]]) value 被序列化为字符串的对象 replacer 根据类型不同,其行为也 ...

  2. 重邮二进制群-pwn1

    给学弟们练手的题目,做的过程中接触一些基本概念 #include <stdio.h> #include <unistd.h> int main() { ]; welcome() ...

  3. [考试反思]0719NOIP模拟测试6 + 0722NOIP模拟测试7

    连续爆炸,颇为愉快. 第6次:Rank #4 第7次:Rank #9 对于第6次考试,个人比较满意,因为T1只是差了一个卡常. 因为在考试前两天刚讲了矩阵,满脑子都是矩阵,还想到了循环矩阵优化. 整个 ...

  4. 如何用CSS实现中间自适应,两边定宽三栏布局

    1.前言 用css实现“两边定宽,中间自适应的三栏布局”这个问题应该是在前端面试中被面试官提问到的高频问题了,一般当面试者写出一种实现方法之后,面试官还会问你还有没有别的方法,尽量多的写出几种实现方法 ...

  5. 爬虫学习--Urllib库基本使用 Day1

    一.Urllib库详解 1.什么是Urllib Python内置的HTTP请求库 urllib.request    请求模块(模拟实现传入网址访问) urllib.error             ...

  6. maven聚合(依赖聚合)

    maven聚合工程 原文地址:http://juvenshun.iteye.com/blog/305865 http://blog.csdn.NET/woxueliuyun/article/detai ...

  7. netty服务端的创建

    服务端的创建 示例代码 netty源码中有一个netty-example项目,不妨以经典的EchoServer作为楔子. // 步骤1 EventLoopGroup bossGroup = new N ...

  8. 解决 scp 和rsync 同步失败【rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.2]】

    解决 scp 和rsync 同步失败 报错信息截图: 解决问题的步骤: 1.检查对方的scp和rsync 是否能使用. rsync 在使用的时候,需要客户端和服务端都有rsync工具.scp 和 rs ...

  9. 大学生活这样过,校招 offer 飞来找

    01.开门见山 由于我比较喜欢分享的原因,认识了不少大学生.其中有不少佼佼者,比如说一年读 50 本书的璐璐,校招斩获一线大厂 Offer 的晓峰,通过运营公众号实现经济独立的帅土. 当然也有一些不知 ...

  10. RocketMQ消息轨迹-设计篇

    目录 1.消息轨迹数据格式 2.记录消息轨迹 3.如何存储消息轨迹数据 @(本节目录) RocketMQ消息轨迹主要包含两篇文章:设计篇与源码分析篇,本节将详细介绍RocketMQ消息轨迹-设计相关. ...