-
数据结构
- 常量:
- 逻辑型:TRUE(T)和FALSE(F)
- 数值型:25,3.14
- 字符型:“1101”
- 因子型:factor(),有类别,有序的
1.向量
向量是用于存储数值型、字符型或逻辑型的一维数组,执行组合功能的函数c()可以用来创建向量。向量元素的数据类型必须相同。
x<-c(1,2,3)
x
y<-c('one','two','three')
y
2.矩阵
矩阵是一个二维数组,每个元素都拥有相同的类型,可通过函数matrix创建矩阵。默认按列排序。
matrix(1:10,2)
matrix(1:10,nrow=2,ncol=5,byrow=true)
rnames<-c('R1','R2')
cnames<-c('C1','C2','C3','C4','C5')
matrix(1:10,nrow=2,ncol=5,byrow=TRUE,dimnames=list(rnames,cnames))
3.数组
数组与矩阵类似,但是维度可以大于2,数组可通过array函数创建。数组中的数据也只能拥有一种类型,从数组中选取元素的方式与矩阵相同。
dim1<-c('A1','A2')
dim2<-c('B1','B2','B3')
dim3<-c('C1','C2','C3','C4')
z<-array(1:24,dim=c(2,3,4),dimnames=list(dim1,dim2,dim3))
4.数据框
数据框不同的列可以包含不同类型的数据,数据框是R语言中最常处理的数据结构,数据框可通过函数data.frame()创建每一列数据的类型必须统一。
ID<-c(1,2,3,4)
Age<-c(25,34,28,52)
Type<-c('Type1','Type2','Type1','Type1')
Status<-c('Poor','Imroved','Excellent','Poor')
patientData<-data.frame(ID,Age,Type,Status)
patientData
5.列表
列表是R语言数据类型中最为复杂的一种,列表是一些对象的有序集合。列表允许整合若干对象到单个对象名下,可以使用函数list()创建列表。
g<-'This is my first list'
h<-c(25,26,18,30)
j<-matrix(1:10,nrow = 5)
k<-c('first','second','third')
mylist<-list(title=g,age=h,j,k)
mylist
-
数据输入
1.键盘输入
R中的函数edit()会自动调用一个允许手动输入数据的数据编辑器。
mydata<-data.frame(age=numeric(0),gender=character(0),weight=numeric(0))
mydata<-edit(mydata)
2.通过文件输入
(1)设置工作目录 getwd(),setwd("d:/r")
(2)通过带分隔符的文件输入read.csv(),read.table()
# 包含表头,以逗号为分隔符
dat=read.table("iris2.txt",header = T,sep = ",")
(3)从Excel导入
需先安装xlsx包,install.packages("xlsx");加载xlsx包,library("xlsx")。
# 转为数据框,包含表头
dat2 = read.xlsx("iris2.xlsx", 1, sheetName=NULL, startRow=1,
colIndex=NULL, as.data.frame=TRUE, header=TRUE)
-
程序控制流语句
1.循环语句
求整数1到50的和
(1)for结构
sum1<-0
for(i in 1:50) sum1<-sum1+i
sum1
(2)while结构
i<-0
sum2<-0
while(i<=50){
sum2<-sum2+i
i<-i+1
}
sum2
2.条件语句
定义一个变量x=50,判断该变量能否被5整除,如果可以输出‘ok’,如果不可以输出‘No’。
x<-50
if(x %% 5==0) print("ok") else print("No")
x<-50
otucome<-ifelse(x %% 5 == 0,print("ok"),print("No"))
3.switch语句
feelings<-c('sad','afraid')
for(i in feelings)
print(
switch(i,
happy='happy',
afraid='afraid',
sad='sad',
angry='angry'
)
)
-
用户自编函数
R的最大优点之一就是用户可以自行添加函数。函数中的对象只在函数内部使用,返回对象的数据类型是任意的,从向量到列表皆可。
myfunc<-function(x,y)
{
dist<-sqrt((x[1]-y[1])^2 + (x[2]-y[2])^2)
return(dist)
}
x<-c(1,2)
y<-c(3,4)
myfunc(x,y)
-
运算符
1.逻辑运算符
(1)取余 %%
(2)除法 %/%
(3)乘方 ^
(4)乘法 %*%
x<-10
y<-2
z1<-x%%y
z2<-x%/%y
z3<-x^y
z4<-x%*%y
-
绘图
1.直方图
# 50个0~2的随机数
x<-runif(50,0,2)
x
hist(x)

2.散点图
x<-runif(50,0,2)
y<-runif(50,0,2)
plot(x,y,main="散点图")

3.饼图
pie.sales<-c(0.2,0.3,0.4,0.1)
pie(pie.sales)

网友评论