R语言基础篇——数据对象
1、基本数据类型(numeric,logical,character,NA,double,complex,integer)
2、日期变量
常用函数
Sys.Date()-返回系统当前的日期,Sys.time()-返回系统当前的日期和时间,date()-返回系统当前的日期和时间,
as.Date()-将字符串形式的日期值转换为日期变量,as.Date(x,format="",...)
as.POSIXllt()-将字符串转化为包含时间及时区的日期变量,as.POSIXllt(x,tz="",format)
strptime()-将字符串变量转换为包含时间的日期变量,strptime(x,format,tz="")
strfttime()-将日期变量转换为指定格式的字符串变量,strfttime(x,format)
format()-将日期变量转换为指定格式的字符串变量,format(x,...)
3、查看对象的类型
class()、mode()、typeof()
4、数据结构
(1)向量
向量创建:c()函数创建向量
向量索引:#下标方式索引 vector<-c(1,2,3,4) vector[1] vector[c(1:3)]
#按名称索引 names(vector)<-c("one","two","three","four") vector[c("one","two")]
#which方式索引 which(vector==1) which(vector==c(1,2)) which.max(vector)
#subser方式索引 subset(vector,vector>2&vector<4)
#%in%方式索引 c(1,5)%in%vector
向量编辑 : #向量扩展(x<-c(x,c(5,6,7))) #单个元素的删除 x<-x[-1] #多个元素的删除 (x<-x[c(3:5)])
向量排序:sort(x,decreasing = FALSE,na.last = TRUE...) 倒序——rev()函数
等差数列的建立:seq(from = 1, to = 1, by = ((to - from)/length.out - 1),length.out = NULL,...) seq(1,-9,by = -2)
重复数列的建立:rep(x,times=1,length.out=NA,each=1) rep(1:3, each=2, times=2) 112233112233112233
(2)矩阵
创建矩阵:matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)
x<-c(1:9)
a<-matrix(x,nrow=5,ncol=2,byrow=FAlSE,dimnames=list(c("r1","r2","r3","r4","r5"),c("c1","c2")))
矩阵和转换为向量:as.vector(),转换为向量时元素按列读取数据
矩阵索引:#根据位置索引 a[2,1]
#根据行和列的名称索引 a["r2","c2"]
#使用一维下标索引 a[,2]
#使用数值型向量索引 a[c(3:5),2]
矩阵编辑:#矩阵合并(a1<-rbind(a,c(11,12))) (a2<-rbind(a,c(11:15)))
#删除矩阵中元素 a5<-a[-1,] #删除矩阵中的第一行
矩阵的运算:colSums()-对矩阵的各列求和 rowSums()-对矩阵的各行求和 colMeans()-对矩阵各列求均值 rowMeans()-对矩阵各行求均值
t()-矩阵行列转换 det()-求解矩阵的行列式 crossprod()-求解两个矩阵的内积 outer()-求解矩阵的外积 %*%-矩阵乘法
diag()-对矩阵取对角元素 solve()-对矩阵求解逆矩阵 eigen()-对矩阵求解特征值和特征向量
(3)数组
创建数组:array(data,dim=length(data),dimnames=NULL)
x<-c(1:9)
dim1<-c("A1","A2","A3")
dim2<-c("B1","B2","B3","B4","B5")
dim3<-c("C1","C2")
a<-array(x,dim=c(3,5,2),dimnames=list(dim1,dim2,dim3))
数组索引:#按下标索引 a[2,4,2]
#按维度名称索引a["A2","B3","C1"]
#查看数组的维度 dim(a)
(4)数据框
创建数据框:data.frame()
#向量组成数据框
data_iris<-data.frame(s.length=c(1,1,1,1),s.width=c(2,2,2,2),w.length=c(3,3,3,3),w.width=c(4,4,4,4))
#矩阵组成数据框
data_matrix<-matrix(c(1:8),c(4,2))
data_iris2<-data.frame(data_matrix)
数据框索引:#列索引 data_iris[,1] || data_iris$s.length || data_iris["s,length"]
#行索引 data_iris[1,] || data_iris[1:3,]
#元素索引 data_iris[1,1] data_iris$s.length[1] data_iris["s,length"][1]
#subset索引 subset(data_iris, s.length=1)
#sqldf函数索引 library(sqldf) newdf<-sqldf("select * from mtcars where carb=1 order by mpg",row.names=TRUE)
数据框编辑:#增加新的样本数据 data_iris<-rbind(data_iris,list(9,9,9,9))
#增加数据集的新属性变量 data_iris<-rbind(data_iris,Species=rep(7,5))
#数据框列名的编辑 names(data_iris)
(5)因子
创建因子序列 :
将statistics分解成因子型变量,水平为26个小写字母 (ff<-factor(substring("statistics"),1:10,1:10,levels=letters))
去除没有包含在向量中的水平 f<-factor(ff)
#创建因子型向量,水平名称为letter factor(letters[1:20],labels="letter")
#创建有序的因子序列 z<-factor(LETTERS[1:4],ordered=TRUE)
通过gl()函数创建因子序列 gl(n,k,length=n*k,labels=seq_len(n),ordered=TRUE)
n-表示因子水平的个数
k-表示每个水平的重复数
length-表示生成的序列的长度
labels-一个n维向量,表示因子水平
ordered-一个逻辑值,为TRUE表示有序因子,为FALSE则表示无序因子
gl(2,3,labels=c("T","F"))
因子的存储方式:
> status<-c("Poor","Improved","Excellent","Poor")
> class(status) #查看向量的类型
[1] "character"
> s<-factor(status,ordered=TRUE)
> s
[1] Poor Improved Excellent Poor
Levels: Excellent < Improved < Poor
> class(s)
[1] "ordered" "factor" #查看数据的类型
> storage.mode(s) #查看存储类型,可以看出因子是按整数存储的
[1] "integer"
> as.numeric(s) #转换为数值型向量
[1] 3 2 1 3
> levels(s) #查看因子的水平
[1] "Excellent" "Improved" "Poor"
(6)列表
创建列表:list(object1,object2,...)
data<-list(a=c(1,2,3,4),b=c("true","false"),c=c("one","two","three","four"),d=(1+3i))
列表索引:#列索引 data[[1]] || data$a ||data[["a"]]
#元素索引 data[[1]][1]
列表编辑:列表的编辑和向量类似,使用c()函数进行合并。
#增加名称为e的一列
data1<-c(data,list(e=c(3,4,5)))
或者data1<-c(data,e=list(c(3,4,5)))
R语言基础篇——数据对象的更多相关文章
- R语言基础篇——数据读写
1.键盘输入数据(适合小数据集) #创建一个指定模式但不含数据的变量 mydata<-data.frame(age=numeric(0),gender=character(0),weight=n ...
- R语言入门(2)-数据对象
数据对象 创建向量相关的方法 R语言的向量用法非常像python, 就比如这个seq(0,10,2), 从0到10, 步长为2, 涉及到的元素作为向量里的内容进行创建. 这里的用法非常像Matlab, ...
- R语言学习——处理数据对象的实用函数
length(object) # 显示对象中元素/成分的数量 dim(boject) # 显示某个对象的维度 str(object) # 显示某个对象的结构 class(object) # 显示某个对 ...
- R语言基础:数组&列表&向量&矩阵&因子&数据框
R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...
- R语言基础画图/绘图/作图
R语言基础画图/绘图/作图 R语言基础画图 R语言免费且开源,其强大和自由的画图功能,深受广大学生和可视化工作人员喜爱,这篇文章对如何使用R语言作基本的图形,如直方图,点图,饼状图以及箱线图进行简单介 ...
- [译]用R语言做挖掘数据《二》
数据探索 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到程序: ...
- R语言学习笔记1——R语言中的基本对象
R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心 ...
- R语言实现金融数据的时间序列分析及建模
R语言实现金融数据的时间序列分析及建模 一 移动平均 移动平均能消除数据中的季节变动和不规则变动.若序列中存在周期变动,则通常以周期为移动平均项数.移动平均法可以通过数据显示出数据长期趋势的变动 ...
- R语言处理Web数据
R语言处理Web数据 许多网站提供的数据,以供其用户的消费.例如,世界卫生组织(WHO)提供的CSV,TXT和XML文件的形式的健康和医疗信息报告.基于R程序,我们可以通过编程提取这些网站的具体数据. ...
随机推荐
- CSS盒子模型(框模型)
一.如何理解盒子模型 盒子模型(框模型)是css部分非常重要的一部分知识,CSS在处理网页的时候,认为每个元素都处在一个不可见的盒子中.盒子模型的构想,把所有的元素都想象成盒子,那么对网页进行布局 ...
- docker for windows 中 镜像 microsoft/donet 的文件结构
一共有3个文件夹和1个文件: [Program Files] [Users] [Windows] License.txt 使用vs默认生成的dockerfile文件生成后,会新增app文件夹.
- web上传大文件(>4G)有什么解决方案?
众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路. 实现文件夹 ...
- HDU 6153 A Secret ( KMP&&DP || 拓展KMP )
题意 : 给出两个字符串,现在需要求一个和sum,考虑第二个字符串的所有后缀,每个后缀对于这个sum的贡献是这个后缀在第一个字符串出现的次数*后缀的长度,最后输出的答案应当是 sum % 1e9+7 ...
- 【PowerOJ1739&网络流24题】魔术球问题(最大流)
题意: 思路: 0.[问题分析] 枚举答案转化为判定性问题,然后最小路径覆盖,可以转化成二分图最大匹配,从而用最大流解决. [建模方法] 枚举答案A,在图中建立节点1..A.如果对于i<j有i+ ...
- Android4.0 Camera架构初始化流程【转】
本文转载自:http://blog.chinaunix.net/uid-2630593-id-3307176.html Android Camera 采用C/S架构,client 与server两个独 ...
- leetcode-mid-Linked list-328 Odd Even Linked List-NO
mycode # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # sel ...
- xpath 算法
w https://www.w3.org/TR/xpath20/ Before an expression can be processed, its input data must be repre ...
- VMware 虚拟化编程(13) — VMware 虚拟机的备份方案设计
目录 目录 前文列表 备份思路 备份算法 备份细节 连接到 vCenter 还是 ESXi 如何选择快照类型 是否开启 CBT 如何获取备份数据 如何提高备份数据的传输率 备份厚置备磁盘和精简置备磁盘 ...
- SharpBrowser
SharpBrowser is the fastest open source C# web browser there is! Slightly faster than Google Chrome ...