R語言學習-基礎篇1

###第一週:R基礎sql

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)
相關文章
相關標籤/搜索