目录
一、数据矩阵数据框及R表示
1、创建向量和矩阵
1)创建一个向量
2)创建一个矩阵
2、矩阵其他运算
1)矩阵的转置,加法减,矩阵相乘,求矩阵C的逆
2)获得矩阵对角线元素 ,创建三阶单位矩阵
3)求矩阵特征值与特征向量,矩阵奇异值分解
4)矩阵维数 ,行数 ,列数
5)矩阵的和,矩阵求均值
3、数据框及R表示
1)构建数据框 ,赋予数据框列新名
2)按列合并 ,按行合并 ,按行显示
3)数据框的应用
二、多元数据简单R分析
1、多元数据的R调用
1)从剪切板读取
2)从文本文件读取
3)从Excel文件中读取
内容来自《多元统计分析及R语言建模》第五版,编著 王斌会
#创建一个向量
x1=c(171,175,159,155,152,158,154,164,168,166,159,164)
x2=c(57,64,41,38,35,44,41,51,57,49,46,47)
length(x1) #向量的长度
mode(x1) #数据的类型
可以使用“:”来快速生成等差数列向量,可以用其选择子数列
a=1:12;a
b=c(1,3,6:3,9);b
1)matrix(data=NA,nrow=1,ncol=1,byrow=False,dimnames=NULL)
注:data为必要矩阵元素,nrow为列数,ncol为行数,byrow控制排列元素时是否按行(默认按列),dimnames给定行和列的名称
A=matrix(c(1,4,2,5,3,6),nrow=2,ncol=3);
A
B=matrix(c(1,2,3,4,5,6),3,2);
B
A=matrix(c(1,4,2,5,3,6),nrow=2,ncol=3);
A
B=matrix(c(1,2,3,4,5,6),3,2);
B
A=matrix(c(1,4,2,5,3,6),nrow=2,ncol=3,dimnames=list(c('a','b'),c('e','f','g')));
A
A=matrix(c(1,4,2,5,3,6),nrow=2,ncol=3,dimnames=list(c('a','b'),c('e','f','g')));
A
2)用现成向量创建矩阵
matrix(x1,nrow=3,ncol=4)#利用已有数据创建矩阵
matrix(x1,nrow=4,ncol=3,byrow=T)
t(A) #A的转置
A[,1:2]+B[1:2,] #矩阵的加法
A[,2:3]+B[2:3,] #矩阵的减法
C=A%*%B ;C #矩阵相乘
D=B%*%A ;D
diag(D) #获得矩阵对角线元素
I=diag(3); I #创建三阶单位矩阵
solve(C) #求矩阵C的逆
D.e = eigen(D,symmetric=T);D.e #求矩阵特征值与特征向量
(F=matrix(1:18,3,6))
(F.s=svd(A)) #矩阵奇异值分解
dim(A) #矩阵维数
row(A) #矩阵行数
col(A) #矩阵列数
sum(A) #矩阵的和
rowSums(A) #矩阵按行求和
colSums(A) #矩阵按列求和
mean(A) #矩阵求均值
rowMeans(A)
colMeans(A)
t(A) #A的转置
A[,1:2]+B[1:2,] #矩阵的加法
A[,2:3]+B[2:3,] #矩阵的减法
C=A%*%B ;C #矩阵相乘
D=B%*%A ;D
diag(D) #获得矩阵对角线元素
I=diag(3); I #创建三阶单位矩阵
solve(C) #求矩阵C的逆
D.e = eigen(D,symmetric=T);D.e #求矩阵特征值与特征向量
(F=matrix(1:18,3,6))
(F.s=svd(A)) #矩阵奇异值分解
dim(A) #矩阵维数
row(A) #矩阵行数
col(A) #矩阵列数
sum(A) #矩阵的和
rowSums(A) #矩阵按行求和
colSums(A) #矩阵按列求和
mean(A) #矩阵求均值
rowMeans(A)
colMeans(A)
数据框(Data Frame)是一种矩阵形式的数据,但数据框中各列可以是不同类型数据,每列是一个变量,每行是一个观测.数据框可以看成是矩阵(Matrix)的推广,也可以看成特殊点列表对象.
X=data.frame(x1,x2);X #构建数据框
Y=data.frame('身高'=x1,'体重'=x2);Y #赋予数据框列新名
rbind(x1,x2) #按列合并
cbind(x1,x2) #按行合并
#按行显示,默认六行数据
head(X) #按行显示前六行数据
tail(X) ##按行显示后六行数据
X=data.frame(x1,x2);X #构建数据框
Y=data.frame('身高'=x1,'体重'=x2);Y #赋予数据框列新名
rbind(x1,x2) #按列合并
cbind(x1,x2) #按行合并
#按行显示,默认六行数据
head(X) #按行显示前六行数据
tail(X) ##按行显示后六行数据
apply(X,MARGIN,FUN)
X为数据框或矩阵,MARGIN=1表示行运算、MARGIN=2表示列运算,FUN用来指定运算函数
Xr=apply(X,1,sum);Xr
Xc=apply(X,2,sum);Xc
a、拷贝需要进行计算的数据块
b、在R中使用dat=read.table("clipboard",header=T)
注:dat为读入的R数据框,clipboard为剪切板,header=T选项用来指定第一行是标题行,并且省略文件中给定的行标签
d2.1=read.table("clipboard",header=T)
head(d2.1)
a、首先先将xlsx格式转为(.csv)
b、read.csv("test1.csv") #若文件本就存在R的工作文档中,则不需要写全部路径
注:还可以使用write.csv函数在R中保存数据
write.csv(X,file="test1.cssv",row.name=F)
library(openxlsx). #没有安装包可以先 install.package("openxlsx")
d2.1=read.xlsx('mvstats5.xlsx','d2.1')
tail(d2.1)