###第一周:R基礎
rm(list = ls()) #ctr+L###矩陣相乘,函式diag()
a=matrix(1:12,nrow=3,ncol=4)
b=matrix(1:12,nrow=4,ncol=3)
a%*%b
a=matrix(1:16,nrow=4,ncol=4)
diag(a)#回傳對角線元素
diag(diag(a))
diag(4)#對角線為1的單位矩陣
###矩陣求逆,函式rnorm(),solve()
a=matrix(rnorm(16),4,4)#產生4*4的亂數
solve(a)#矩陣求逆!!!!(逆矩陣)
b=c(1:4)
solve(a,b)#求方程的解
##矩陣的特征值、特征向量eigen()
a=diag(4)+1
a.e=eigen(a,symmetric = T)
a.e
a.e$vectors%*%diag(a.e$values)%*%t(a.e$vectors)####?????? ###陣列
x=c(1:6)
x
is.vector(x)#x是一個向量嗎,
is.array(x)#x不是陣列
dim(x)<-c(2,3)#增加維數,x變為陣列
x
is.matrix(x)#x也是一個矩陣
####資料框,與矩陣的區別,矩陣每個元素都是數字(陣列也類似),矩陣形式,但每列可以是不同的型別
x1=c(1,2,3,4,5,6,7,8,9,10)
length(x1)
x2=c(1,2,3,4,5,6,10,7,8,9)
length(x2)
x=data.frame(x1,x2)#向量組合成為資料框,可以是不同型別,陣列或字符,x1與x2長度相等
(x=data.frame('重量'=x1,'運費'=x2))#替換列頭
#畫散點圖,函式plot()
plot(x)
#讀文本檔案資料,先設定作業目錄,把文本檔案放于該目錄下
x=read.csv("F:\\R語言\\data.csv")
#讀剪貼板(文本或Excel資料可通過剪貼板操作)
y=read.table("clipboard",header = F)#header=T表示不讀列頭
#Excel檔案(方法一:另存為空格分隔(就是原先的空格變為,)的prn文本格式再讀)
w=read.table("F:\\R語言\\data.prn",header = T)
#方法2:安裝RODBC包,再通過ODBC讀
install.packages("RODBC")
library(RODBC)#裝載包
z<-odbcConnectExcel("F:\\R語言\\student.xls")
(w<-sqlFetch(z,"Sheet1")) #####循壞陳述句(for陳述句)
a=0
for(i in 1:59){a[i]=i*2+3} #格式for(循壞變數 in 遍歷范圍){循壞體(向量a里的第i個元素=啥,將i按指定的規律賦值)}
a
for(i in 1:59){a[i]=i*2+3;b[i]=i*5-4}
b=0
b#(與a、b的初始值無關,但是要有初始值)
##while陳述句
a[1]=5
i=1
while(a[i]<121){i=i+1;a[i]=a[i-1]+2}##滿足這個條件便開始循壞
a
###source()函式,print()函式
source("F:\\R語言\\learningR.R")##運行腳本語言
print(x)#在監控臺來顯示結果
######綜合性例子,模擬產生統計專業同學的名單(學號區分),記錄數學分析,線性代數,概率統計三科成績,然后進行統計分析
num=seq(2120170400,2120170400)#seq()函式產生向量,產生100個不同的學號
num
#用runif和rnorm
#產生100個均勻分布的亂數,上限是100,下限是80,產生的向量可能會有小數點,用round()函式四舍五入
x1<-round(runif(100,min=80,max=100))
x1
x2=round(rnorm(100,mean = 80,sd=7))#均值為80,標準差為7,正態分布
x2
x3=round(rnorm(100,mean = 83,sd=18))#均值為83,標準差為18
x3
x3[which(x3>100)]=100#先找到大于100的數的下標,再將此下標對應的值賦值為100
##合成資料框并保存到硬碟
#data.frame()
#write.table()
x=data.frame(num,x1,x2,x3)
x
write.table(x,file = "F:\\R語言\\mark.txt",col.names = F,row.names = F,sep = " ")#將x資料框寫入到檔案指定的地方
##計算各科的平均分mean(),collMeans(),apply()
mean(x)###運行為NA
colMeans(x)##對列求平均值,會對學號也求平均值
colMeans(x)[c("x1","x2","x3")]#不顯示列
apply(x,2,mean)#表示對x資料框作2(列)求mean操作,--1(行操作)
###求各科最高最低分
apply(x, 2, max)#對列求最高分
apply(x,2,min)#對列求最低分
##求每個人的總分
sum=apply(x[c("x1","x2","x3")],1,sum)
x=data.frame(num,x1,x2,x3,sum)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/39996.html
標籤:大數據
上一篇:sybase是不是已經放棄pb了
下一篇:2、Hdfs架構設計與原理分析
