R语言学习笔记(2)
第二章:创建数据集
一 R中的数据
二 数据的输入
一R中的数据
数据集:通常是由数据构成的一个矩形数组,行表示观测,列表示变量
R可以处理的数据类型:数值型、字符型、逻辑型、复数型(虚数)、原生型(字节)
R将类别型(包括名义型和有序型)变量称为因子
数据结构
R有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表
在R中,对象是指可以赋值给变量的任何事物
向量
向量是用于存储数值型、字符型、或逻辑型数据的一堆数组。用函数c()可以创建向量。单个向量的数据必须拥有相同的类型(数值型,字符型或逻辑型)
> a<-c(,,,,,,)
> a
[]
> b<-c("one","two","three")
> b
[] "one" "two" "three"
> c<-c(TRUE,FALSE,TRUE,TRUE,FALSE)
通过方括号访问向量中的元素
1 > a<-c(,,,,,)
> a[]
[]
> a[c(,,)]
[]
> a[:]
[]
矩阵(是一个二维数组,只是每个元素都是相同的模式)
一般格式
mymatrix<-matrix(vector,nrow=number_of_rows, ncol=number_of_columns,
byrow=logical_value, dimnames=list(char_vector_names,char_vector_colnames))
vector包含了矩阵的元素,nrow和ncol用于指定行和列的维数,dimnames包含了可选的、以字符型向量表示的行名和列名。
byrow则表明矩阵应当按行填充(byrow=TRUE)还是按列填充(byrow=FALSE),默认情况是按列填充
代码2-1
1 > y<-matrix(:,nrow=,ncol=)
> y
[,] [,] [,] [,]
[,]
[,]
[,]
[,]
[,]
> cells<-c(,,,)
> rnames<-c("R1","R2")
> cnames<-c("C1","C2")
> mymatrix<-matrix(cells,nrow=,ncol=,byrow=TRUE,
dimnames=list(rnames,cnames))
> mymatrix
C1 C2
R1
R2
> mymatrix<-matrix(cells,nrow = ,ncol = ,byrow = FALSE,
+ dimnames = list(rnames,cnames))
> mymatrix
C1 C2
R1
R2
访问矩阵中的元素
代码2-2
1 > x<-matrix(:,nrow=)
> x[,]
[]
> x[,]
[]
> x[,c(,)]
[]
数组
数组与矩阵类似,但维度可以大于2。通过array()函数实现,形式如下:
myarray<-array(vector,dimensions,dimnames)
其中vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,dimnames是可选的、各维度名称标签的列表。
代码2-3
1 > dim2<-c("B1","B2","B3")
> dim1<-c("A1","A2")
> dim2<-c("B1","B2","B3")
> dim3<-c("C1","C2","C3","C4")
> z<-array(:,c(,,),dimnames = list(dim1,dim2,dim3))
> z
, , C1 B1 B2 B3
A1
A2 , , C2 B1 B2 B3
A1
A2 , , C3 B1 B2 B3
A1
A2 , , C4 B1 B2 B3
A1
A2
数据框
数据框通过data.frame()创建
mydata<-data.frame(col1,col2,col,……)
其中列向量col1,col2,....可以为任何类型(如字符型,数值型或逻辑型)。每一列的名称可由函数names指定。
代码2-4
1 > patientID<-c(,,,)
> age<-c(,,,)
> diabetes<-c("Type1","Type","Type1","Type1")
> status<-c("Poor","Improved","Excellent","Poor")
> patientdata<-data.frame(patientID,age,diabetes,status)
> patientdata
patientID age diabetes status
Type1 Poor
Type Improved
Type1 Excellent
Type1 Poor
选取数据框中的元素
代码2-5
1 > patientdata[:]
patientID age > patientdata[c("diabetes","status")]
diabetes status
Type1 Poor
Type Improved
Type1 Excellent
Type1 Poor
> patientdata$age # $符号用来选取一个给定数据框中的某个特定变量
[]
> table(patientdata$diabetes,patientdata$status) Excellent Improved Poor
Type
Type1 2
attach()可以将数据框添加到R的搜索路径中
detach()将数据从搜索路径中移除
with()
列表
列表可用函数list()创建列表
mylist<-list(object1,object2,....)
or
mylist<-list(name1=object1,name2=object2,...)
代码2-7
1 > g<-"my first list"
> h<-c(,,,)
> j<-matrix(:,nrow = )
> k<-c("one","two","three")
> mylist<-list(title=g,ages=h,j,k)
> mylist
$title
[] "my first list" $ages
[] [[]]
[,] [,]
[,]
[,]
[,]
[,]
[,] [[]]
[] "one" "two" "three" > mylist[[]]
[]
> mylist[["ages"]]
[]
二 数据的输入(键盘,文本文件,统计软件,数据库等)
数据的更改:edit()函数
fix()函数
从带分隔符的文本文件导入数据:read.table()
mydata<-read.table(file,header=logical_value,
sep="delimiter",row.names="name")
其中file是一个带分隔符的ASCII文本文件,header是一个表明首行是否包含了变量的名称的逻辑值,sep用来指定分割数据的分割符,row.names是一个可选参数,用以指定一个或多个表示行标识符的变量
导入excel数据:先在excel中将其导出为逗号分隔文件(csv),然后导入到R中
下载安装xlsx包,然后read。xlsx(file,n)n为要导入的工作表序号
mydataframe<-read.xlsx(workbook,1)
从网页抓取数据:使用readlines()函数下载网页,然后用如grep()和gsub()一类函数处理
导入spass数据:通过foreign包中的函数read.spss()导入R中,
也可以使用Hmisc包中的spss.get()函数
mydataframe()<-spss.get("mydata.sav",use.valuel.labels=TRUE) use.value.labels=TRUE表示函数将带有值标签的变量导入为R中水平的相应因子。
R语言学习笔记(2)的更多相关文章
- R语言学习笔记之: 论如何正确把EXCEL文件喂给R处理
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html ---- 前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. ...
- R语言学习笔记(二)
今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") &g ...
- R语言学习笔记:小试R环境
买了三本R语言的书,同时使用来学习R语言,粗略翻下来感觉第一本最好: <R语言编程艺术>The Art of R Programming <R语言初学者使用>A Beginne ...
- R语言学习笔记:基础知识
1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...
- R语言学习笔记——C#中如何使用R语言setwd()函数
在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//")> setwd("e:\桌面\")> s ...
- R语言学习笔记-机器学习1-3章
在折腾完爬虫还有一些感兴趣的内容后,我最近在看用R语言进行简单机器学习的知识,主要参考了<机器学习-实用案例解析>这本书. 这本书是目前市面少有的,纯粹以R语言为基础讲解的机器学习知识,书 ...
- R语言学习笔记(一)
1.不同的行业对数据集(即表格)的行和列称谓不同,统计学家称其为观测(observation)和变量(variable): 2.R语言存储数据的结构: ①向量:类似于C语言里的一位数组,执行组合功能的 ...
- R语言学习笔记
向量化的函数 向量化的函数 ifelse/which/where/any/all/cumsum/cumprod/对于矩阵而言,可以使用rowSums/colSums.对于“穷举所有组合问题" ...
- R语言学习笔记-变量的作用域
R语言是如何将变量值和变量绑定的 在r语言中,当前的 workspace就是global enviroment,当输入变量名时,首先会在global enviroment中搜索该变量,如有,则将它显示 ...
- R语言学习笔记:分析学生的考试成绩
孩子上初中时拿到过全年级一次考试所有科目的考试成绩表,正好可以用于R语言的统计分析学习.为了不泄漏孩子的姓名,就用学号代替了,感兴趣可以下载测试数据进行练习. num class chn math e ...
随机推荐
- Win MYSQL5.7.19压缩版安装
最近需要在wins上安装MYSQL,发现最新的版本和之前的有点差距,再次记录一下 1.下载:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5. ...
- iptables 概念 1
[ 实战笔记 -- iptables 概念 1 ] 一. 防火墙相关概念 # 从逻辑上讲,防火墙可以分为主机防火墙和网络防火墙. 1> 主机防火墙: 针对于单个主机进行防护 2> 网络防火 ...
- java爬虫-简单爬取网页图片
刚刚接触到“爬虫”这个词的时候是在大一,那时候什么都不明白,但知道了百度.谷歌他们的搜索引擎就是个爬虫. 现在大二.再次燃起对爬虫的热爱,查阅资料,知道常用java.python语言编程,这次我选择了 ...
- 实用 35 个 jQuery 小技巧
1. 禁止右键点击 $(document).ready(function(){ $(document).bind("contextmenu",function(e){ return ...
- python 元类metaclass
文章转自:http://www.cnblogs.com/linhaifeng/articles/8029564.html 一 知识储备 exec:三个参数 参数一:字符串形式的命令 参数二:全局作用域 ...
- Python中 sys.argv[]的用法实操
使用sys.argv[]首先要调用模块sys import sys 通俗说,这个东西就是取代了input的功能,input是用pycharm上,而argv[]是用在命令行上 也就是window 上的小 ...
- python生成器&迭代器
列表生成式 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 里每个值都加一 普通做法 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]for index,i in e ...
- 判断IP地址是否合法
/* return 1 if string contain only digits, else return 0 */ int valid_digit(char *ip_str) { while (* ...
- redis3.2.11多机多实例集群部署及测试连接情况
机器配置 redis3.2.11安装配置规划 机器 192.168.169.136(本机虚拟机1) 192.168.169.137(本机虚拟机2) 系统 Red Hat Enterprise Linu ...
- mysql数据库补充知识7 索引原理与慢查询优化
一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句 ...