R In Action|创建数据集
简单的介绍数据的对象类型及文件的读入,输出。
一、对象类型:
包括标量、向量、矩阵、数组、数据框和列表。
1)向量(vector):用于存储数值型、字符型或逻辑型数据的一维数组。函数c()用来创建向量:
示例如下:
a <- c(1:10) b <- c("A","B") d <- c(TRUE,FALSE)
注:单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型)。
2)矩阵:二维数组,每个元素都拥有相同的模式(数值型、字符型或逻辑型)。函数matrix创建矩阵:
myymatrix <- matrix(vector, nrow=number_of_rows, ncol=number_of_columns,byrow=logical_value, dimnames=list(char_vector_rownames, char_vector_colnames))
其中:vector包含了矩阵的元素, nrow和ncol用以指定行和列的维数, dimnames包含了可选的、以字符型向量表示的行名和列名。默认情况按列填充。
示例如下:
mymatrix <- matrix(1:4, nrow=2, ncol=2, byrow=FALSE,dimnames=list(c("R1","R2"),c("C1","C2"))) C1 C2R1 1 3R2 2 4
3)数组(array):与矩阵类似,维度可以大于2。array函数创建:
myarray <- array(vector, dimensions, dimnames)
其中:vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表
示例如下:
myarray <- array(1:24, c(2, 3, 4), dimnames=list(c("A1", "A2"), c("B1", "B2", "B3"), c("C1", "C2", "C3", "C4")))
4)数据框(data.frame):不同的列可以包含不同模式(数值型、字符型等)的数据,很重要!data.frame()创建:
mydata <- data.frame(col1, col2, col3,…)
其中的列向量col1, col2, col3,… 可为任何类型(如字符型、数值型或逻辑型)。每一列的名称可由函数names指定
示例如下:
patientID <- c(1, 2, 3, 4)age <- c(25, 34, 28, 52)diabetes <- c("Type1", "Type2", "Type1", "Type1")status <- c("Poor", "Improved", "Excellent", "Poor")patientdata <- data.frame(patientID, age, diabetes, status)
patientID age diabetes status1 1 25 Type1 Poor2 2 34 Type2 Improved3 3 28 Type1 Excellent4 4 52 Type1 Poor
是不是和EXCEL内容很像,所以重要啊!
5)因子(factor):类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor),绘图时候重要。
6)列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。函数list()创建:
mylist <- list(object1, object2, …)
示例如下:
g <- "My First List"h <- c(25, 26, 18, 39)j <- matrix(1:10, nrow=5)k <- c("one", "two", "three")mylist <- list(title=g, ages=h, j, k)
二、数据下标
注:第一个元素下标从1开始!
1)向量:a[2];d[1]
2)矩阵:使用下标和方括号来选择矩阵中的行、 列或元素。X[i,]指矩阵X中的第i 行,X[,j]指第j 列, X[i, j]指第i 行第j 个元素。选择多行或多列时,下标i 和j 可为数值型向量。
3)数组:从数组中选取元素的方式与矩阵相同
4)数据框:可以使用前述(如矩阵中的)下标记号,亦可直接指定列名。
patientdata$age && patientdata[,2] 一样的结果
另:在每个变量名前都键入一次patientdata$麻烦,可以走一些捷径。联合使用函数attach()和detach()或单独使用函数with()来简化代码;
示例如下:
attach(mtcars) #函数attach()可将数据框添加到R的搜索路径中summary(mpg) #检查搜索路径中的数据框,以定位到这个变量plot(mpg, disp)detach(mtcars) #函数detach()将数据框从搜索路径中移除
with(mtcars, {nokeepstats <- summary(mpg)keepstats <<- summary(mpg) #使用特殊赋值符<<-替代标准赋值符(<-)即可,它可将对象保存到with()之外的全局环境中。}) #查看nokeepstats 和 keepstats 的区别:nokeepstatsError: object 'nokeepstats' not foundkeepstats Min. 1st Qu. Median Mean 3rd Qu. Max. 10.40 15.43 19.20 20.09 22.80 33.90
5)列表:双重方括号中指明代表某个成分的数字或名称来访问列表中的元素。
mylist[[2]]和mylist[["ages"]]均指那个含有四个元素的向量mylist[[2]][1] 25 26 18 39mylist[["ages"]][1] 25 26 18 39
三、数据读入与写入:
1)使用read.table()从带分隔符的文本文件中导入数据。
mydataframe <- read.table(file, header=logical_value,sep="delimiter", row.names="name")
注1:help(read.table):更多详情
注2:stringsAsFactors=FALSE,可禁止将字符型变量将转换为因子。
2)使用read.csv()导入csv(excel)数据。
3)write.table , write.csv 输出R结果到文件中.
- CSS侧边栏宽度不动(更改页面宽度时),内容区宽度自适应
- JS网页顶部弹出可关闭广告图层
- 未来会不会出现人类大脑与人工智能进行链接,而产生的超级大脑?
- android布局文件中android:icon="?attr/menuIconCamera"找不到对应图标路径
- 无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(1)表结构
- Centos7修改默认网卡名(改为eth0)以及网卡启动报错RTNETLINK answers: File exists处理
- 通过企业分布式缓存共享运行时数据
- 移植SlidingMenu Android library,和安装example出现的问题解决
- 无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(2)插入记录
- Centos中yum方式安装java
- 微信小程序新革命催生新物种新物种带来大红利!玩转行业新玩法
- 无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(3)删除记录
- 部署Zipkin分布式性能追踪日志系统的操作记录
- 无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(4)显示记录
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法