R软件学习笔记-2

1.

a<-c(1,2,3)    ####创建对象

str(a)         ####查看对象结构,结果显示: num [1:3] 1 2 3




ls()           ####管理对象,浏览当前工作空间中包含的对象,比如上面会包含“a”对象
rm(a)          ####删除当前工作空间中的指定对象
remove(b)  ###和上面一样,即rm()
ls()


2.

数据类型

######################创建包含一个元素的向量
V1<-59         #创建整数形式的数值型向量,存储类型默认为双精度型
V2<-53.5       #创建实数形式的数值型向量,存储类型为双精度型
V3<-"abcD"     #创建逻辑型向量,并直接显示对象值
(V4<-TRUE)     #创建逻辑型向量,并直接显示对象值

is.vector(V1)  #判断V1是否是向量
is.logical(V4) #判断V4是否是逻辑型向量


手动添加表

X<-c(1,1,1)                   #地区横坐标,通过常数创建数值型向量
Y<-c(2,2,2)                   #纵坐标
temp<-c(14.7,18.5,25.9)       #温度
RH<-c(66,73,41)               #相对湿度
wind<-c(2.7,8.5,NA)           #风速,NA表示数值取缺失值
rain<-c(0,0,0)                #降雨量
area<-rain                    #过火面积,rain的值赋给area
month<-c("aug","aug","aug")   #月份,通过常数创建字符串向量
day<-rep("fri",each=3)        #星期,通过rep函数创建向量,重复函数
rank<-seq(from=1,to=3,by=1)   #通过seq函数创建向量,递增


访问指定元素

#########################访问指定位置上的元素
a<-vector(length=10)        #创建包含10个元素的向量a,每个元素都是0
a[1]<-1                     #访问第一个元素,赋值为1
a[2:4]<-c(2,3,4)            #访问第2-4个元素,赋值为2,3,4
b<-seq(from=5,to=9,by=1)    #生成一个取值为5-9的序列给向量b
a[c(5:9,10)]<-c(b,10)       #访问第5-9以及第10个向量,并赋值为5-10

可以看到[ ]括号用来访问,()用来表示向量


合并矩阵

ForeData<-cbind(X,Y,temp,RH,wind,rain,area,rank)   #利用列合并函数cbind创建矩阵
dim(ForeData)                                      #显示矩阵的行列数


访问矩阵元素

#############访问矩阵中的元素

ForeData
ForeData[2,3]
ForeData[1:2,1:3]

fix(ForeData)         #利用编辑窗口形式访问ForeDta


创建数据框

ForeDataFrm<-data.frame(FX=X,FY=Y,Fmonth=month,Fday=day,Ftemp=temp,FRH=RH,Fwind=wind,Frain=rain,Farea=area)   #创建数据框

data.frame把矩阵转换成数据框

数组是一组类型相同的值
矩阵就是一个多维数组
数据框是一个特殊的对象,类似数据库里的表的概念


访问数据框

ForeDataFrm$Fwind              #访问Fwind域
ForeDataFrm[["Ftemp"]]         #访问Ftemp域
ForeDataFrm[[5]]               #访问第5个域(Ftemp)
ForeDataFrm$Ftemp<-ForeDataFrm$Ftemp*1.8+32  #将摄氏温度转化为华氏温度
attach(ForeDataFrm)            #attach数据框绑定函数,detach解绑函数,两者之间可简化域名书写
Ftemp                          #摄氏温度已经转化为华氏温度
Fwind
detach(ForeDataFrm)
Ftemp                          #不能在attach与detach之外省略数据框名


创建表

######################################创建列表
a<-c(1,2,3)
b<-matrix(nrow=5,ncol=2)
b[,1]=seq(from=1,to=10,by=2)
b[,2]=seq(from=10,to=1,by=-2)
c<-array(1:60,c(4,5,3))
d<-list(L1=a,L2=b,L3=c)            #创建列表d,包含3个成分,分别是向量、矩阵和数组


访问表

######################################
names(d)                           #显示列表d的成分名
str(d)                             #显示d的存储类型和结构信息
is.list(d)                         #判断d是否为列表
d$L1                               #访问列表d中的成分L1
d[["L2"]]                          #访问列表d中的成分L2
d[[2]]                             #访问列表d中的第2个成分(L2)
rm(a,b,c,d)                        #删除a,b,c,d


强制类型转换

a<-123.4
(a<-as.integer(a))                #将双精度型转化为整数型

(a<-as.character(a))              #将双精度型转化为字符串型

(a<-as.double(a))                 #无法将将包含非阿拉伯数字的字符串转化为数值型 
typeof(a)                                #显示a的存储类型      


结构类型转换

> (a<-c(1:10))
 [1]  1  2  3  4  5  6  7  8  9 10
> (b<-matrix(a,nrow=5,ncol=2,byrow=TRUE))   #由向量a派生矩阵b
     [,1] [,2]
[1,]    1    2
[2,]    3    4
[3,]    5    6
[4,]    7    8
[5,]    9   10
> (a<-as.matrix(a))                         #将向量a转化为矩阵a,默认列矩阵
      [,1]
 [1,]    1
 [2,]    2
 [3,]    3
 [4,]    4
 [5,]    5
 [6,]    6
 [7,]    7
 [8,]    8
 [9,]    9
[10,]   10


向量转化为因子

(a<-c("Poor","Improved","Excellent","Poor"))  #创建字符串型向量a,包含4个元素
is.vector(a)                                  #判断是向量
(b<-as.factor(a))                             #利用as.factor将字符串型向量a转化为因子a,并显示a
is.factor(b)
levels(b)                                     #顺序显示因子水平值对应的类别值
typeof(b)                                     #显示因子的存储类型为整数型,但显示的是类别值,为字符串

levels用来表示排序的标准,按照因子进行排序


读取文本数据

#######################################读取txt

#形成向量
Forest<-scan(file="ForestData.txt",what=double(),skip=1)   #无法成功执行,scan要求数据的存储类型一致,即txt里面的内容要么全是int,要么全是字符等

#形成数据框
Forest<-read.table(file="ForestData.txt",header=TRUE)      #读取txt形成数据框,且第一行为标题
str(Forest)
names(Forest)
Forest<-read.table(file="ForestData.txt",header=TRUE,stringsAsFactors=FALSE)  #是否自动转化字符串为因子
Forest<-read.table(file="ForestData.txt",header=TRUE,colClass=c("integer","integer","character","character","double","integer","double","double","double"))       #指定各域的存储类型



########################################读取SPSS数据
library(foreign)                   #加载包foreign
Forest<-read.spss(file="ForestData.sav",use.value.labels = TRUE, to.data.frame = TRUE)   #因子转化,数据读入数据框
str(Forest)




########################读取Excel数据
install.packages("xlsx")       #下载并安装包
library("xlsx")                #加载
Forest<-read.xlsx("ForestData.xlsx",1,header=TRUE,as.data.frame=TRUE)
str(Forest)
levels(Forest$month)
Forest$month<-factor(Forest$month,order=TRUE,levels=c("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"))
levels(Forest$month)




#######################读取数据库数据
install.packages("RODBC")        #下载安装RODBC包
library("RODBC")                 #加载
MyConn<-odbcConnectAccess2007("ForestData.accdb",uid="",pwd="")   #建立ForestData.accdb的数据通道,通道名为MyConn
Forest<-sqlFetch(MyConn,"Table1")     #通过通道读取Table1表数据到数据框中
close(MyConn)                     #关闭数据通道
str(Forest)




##########通过ODBC读取Excel数据
MyConn<-odbcConnectExcel2007("ForestData.xlsx")
Forest<-sqlFetch(MyConn,"Forest")
close(MyConn)
str(Forest)


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑子小明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值