天天看點

r語言折線圖把橫坐标改為字元_統計學導論-R語言實驗(1)

統計學導論這門課還有一個非常重要的部分就是R語言實驗,這個部分也是我要選擇這門課的原因之一。下面這幾節就介紹R語言,以及其一些基礎的應用。

  • 實驗1
    • R語言基礎
    • R studio快捷鍵的使用
    • 變量類型
    • 資料結構

R語言基礎

1.R中可以把函數計算的結果指派給變量

x <- 5 # 表示将變量x指派為5
           

注:R中<-為指派符号,R中也允許用=指派,但是可能會出問題是以不推薦使用

2.R中變量名稱可以包含任何大寫字母,小寫字母(是以R中

區分大小寫

),和數字0至9(數字不能用于名稱的開頭),所有符号的輸入要在

英文的狀态

注:變量名稱不能與R中自帶的變量、函數名重複。如pi在R中代表圓周率。

3.#該符号表示注釋符

4.清除單個變量使用rm();清除記憶體中所有變量rm(list=Is(all=TRUE));清屏Ctrl+l

5.R中定義了一些函數例如sin,cos,exp,sort等

help("sort")
?sort
#檢視函數sort的幫助文檔
# 如何看幫助文檔    
	# Description,是告訴你函數是用來做什麼的。    
	# Usage,用法   
 	# Arguments, 參數,即輸入   
	# Value,傳回值,即輸出   
	# Examples,例子
        # Details, 補充說明,經常是一些注意事項
           

R studio快捷鍵的使用

  • 變成注釋 Ctrl+shift+C
  • 運作目前行 Ctrl+Enter
  • <- Alt+”-”
  • 移動滑鼠到控制台 Ctrl+2
  • 移動滑鼠至檔案編輯區 Ctrl+1
  • 控制台清屏 Ctrl+L
  • 曆史記錄翻滾 Up/Down
  • 終止目前指令 Esc

變量類型

可以用class()或者 mode()函數

檢視變量類型
  1. 邏輯型 “logical”,(TRUE/FALSE,或者T/F)(T/F要大寫)
  2. 數值型 “numeric”,代表一個實數
  3. 字元型 “character”,代表一個字元串
a <-   seq(1,10, by = 0.2)
b <- c('my','god!')
c <- c(T,F,T,T,F)

class(a)           # 數值型          
class(b)           # 字元型
class(c)           # 邏輯型
           

在數值計算時,邏輯型的T和F會對應轉換為1和0

TRUE+TRUE
           

布爾運算:并(&)、或(|)、非(!)

b <- T&T
b              #布爾運算:并
c <- T|F
c              #布爾運算:或
d <- !T
d              #布爾運算:非
           

想要

确定變量類型

時,可用is.XX形式的函數

  • 檢查是否為邏輯型變量,用函數:is.logical()
  • 檢查是否為數值型變量,用函數:is.numeric()
  • 檢查是否為字元型變量,用函數:is.character()

當想要

更改變量的資料類型

時,可以用as.XX形式的函數

  • 将變量更改為邏輯型變量,用函數:as.logical()
  • 将變量更改為數值型變量,用函數:as.numeric()
  • 将變量更改為字元型變量,用函數:as.character()

資料結構

向量

向量:用于存儲數值型、字元型或邏輯型資料的一維數組。

标量:隻含一個元素的向量。如:x<-3

  1. 向量的建立

1.1 建立方法一:組合功能函數c()

a <- c(1,2,4)   #數值型向量
>b <- c("one","two","apple")#字元型向量 
 
#注意:不要在編碼時使用c作為變量名
#c <- c(TRUE,TRUE,FALSE,TRUE,FALSE)這是錯誤的
>d <- c(TRUE,TRUE,FALSE,TRUE,FALSE)    #邏輯型向量
           

注:單個向量中的資料必須擁有相同的資料類型。是以,當輸入包含不同資料類型時,會統一成“低級别”的資料類型。

例如有以下的輸出結果:

c("zhang",3,2,TRUE)
           

[1] "zhang" "3" "2" "TRUE"

c(3,2,TRUE,FALSE)
           

[1] 3 2 1 0

1.2 建立方法二:使用冒号生成數值序列

a:b #從a開始,逐項加1或者減1,直到b為止
           

例如有如下輸出結果:

1:6
           

[1] 1 2 3 4 5 6

4:7.6
           

[1] 4 5 6 7

1.2:5
           

[1] 1.2 2.2 3.2 4.2

此外還有幾種等價形式

a <- 2:6    #将向量2,3,4,5,6指派給a
a <- c(2:6) 
a <- c(2,3,4,5,6)
           

1.3 建立方法三:建立等差數列Seq()函數

Seq(from=value1,to=value2,by=value3,length.out=value4)

#首項value1,尾項最接近value2,中間間隔(步長)為value3,向量長度為value4。預設by=1(步長為1)。

m<-seq(2,10)	#等效于 m<-2:10
seq(0, 1, by=0.1)
           

1.4 建立方法四:rep()重複函數

rep(x,times) #将向量x重複times次

rep(x,times,each=n) #先将x的每個元素重複n次,再将得到的向量整體重複times次

例如有如下輸出結果:

x<-c(1,3,5)

s0<-rep(x,times=3); s0          #将向量x重複3次,輸出s
           

[1] 1 3 5 1 3 5 1 3 5

s1<-rep(x,each=3); s1         #将向量x中的每個元素重複3次
           

[1] 1 1 1 3 3 3 5 5 5

2.通路向量中的元素:在方括号[ ]中給定元素所處的位置

a <- c(1,24,56,93,88,97)

a[3]                   #輸出向量a的第3個元素
           

[1] 56

a[c(1,3,5,6)]     #輸出向量a的第1,3,5,6個元素
           

[1] 1 56 88 97

a[2:4]               #輸出向量a的2:4個元素
           

[1] 24 56 93

a[-4]                   #輸出向量a除第4個元素以外的其他元素
           

[1] 1 24 56 88 97

3.修改向量中的元素:指派

(R中向量是連續存儲的,向量大小在建立時就已經确定了,是以不能插入或删除元素。但是向量可以擴充,是以可用重新指派的方法插入或删除向量元素)

a <- c(1,24,56,93,88,97)
a[4]<-3
a #将向量a的第四個值修改為3
           

[1] 1 24 56 3 88 97

a<-c(a[1:3],12,a[4:6])
a  #在第4個元素位置插入12
           

[1] 1 24 56 12 93 88 97

a<-a[1:3]
a     
           

[1] 1 24 56

x<-1:3
x[7]<-4
x   #對原有三個元素的x向量進行擴充自動填充個數,沒有指派的部分填充為NA                      
           

[1] 1 2 3 NA NA NA 4

矩陣

矩陣:二維數組

向量:特殊的矩陣(行數為1,或者列數為1的矩陣)

注:每個元素必須是相同的資料類型(模式)(數值型、字元型或邏輯型

1.建立矩陣

mymatrix <- matrix(vector, nrow=number_of_rows, ncol= number_of_columns, byrow=logical_value, 
dimnames=list(char_vector_rownames, char_vector_colnames))
           

參數說明:

  • Vector 向量:矩陣的元素
  • nrow=number_of_rows 矩陣的行數
  • ncol= number_of_columns 矩陣的列數
  • byrow=logical_value 按行/按列填充(預設FALSE,按列填充)
  • char_vector_rownames 字元型的行名
  • char_vector_colnames 字元型的列名

2.通路矩陣中的元素

在方括号中,通過下标,給定元素所處的位置

  • X[i,j] 第i行第j列的元素
  • X[i,] 第i行的元素
  • x[,j] 第j列的元素

選擇多行或者多列時,i,j可以數值型的向量

x <- matrix(1:10,nrow=2)###預設按列填充
x
x[2,3]         #輸出矩陣x第二行第三列的元素
x[2,]           #輸出矩陣x第二行的元素
x[,2]           #輸出矩陣x第二列的元素
a<-c(1,2)
b<-c(2,3)
x[a,b]         #提取的位置也可以以矩陣形式提取
           

3.修改矩陣中的元素

x<-matrix(1:6,2,3)     #生成2*3的矩陣
one<-c(1,1,1)                     
two<-c(1,1)
 rbind(x,one)            #增加行
 cbind(x,two)            #增加列
           

輸出的結果分别為

r語言折線圖把橫坐标改為字元_統計學導論-R語言實驗(1)

輸出結果1

r語言折線圖把橫坐标改為字元_統計學導論-R語言實驗(1)

輸出結果2

x<-1:5
y<-c('1','2','3')
z<-rbind(x,y)           #行方向合并一定要保證列數相同
y<-c('1','2','3','4','5')
z<-rbind(x,y)
class(z)               #數組中要求各維元素為相同變量類型,否則強行統一為“低級别”類型
           
數組
r語言折線圖把橫坐标改為字元_統計學導論-R語言實驗(1)

1.建立數組

myarray <- array(vector,dimensions,dimnames)
           

參數說明:

Vector 向量:數組中的元素

dimensions:數值型向量,給出各次元下标的最大值;

dimnames:可選的、各次元名稱标簽清單。

dim1<-c('A1','A2')
dim2<-c('B1','B2','B3')
dim3<-c('C1','C2','C3','C4')       #生成各維變量名向量
z<array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3))
z
           

2.通路數組

z[1:2,2:3,2:4]    #通路A1,A2,B2,B3,C2,C3,C4交叉位置的所有元素
z[,,4]            #通路C4位置處的所有元素,未設定第1,2維位置,即預設第1, 2維所有位置皆通路。
           

3.修改數組

數組的修改方式與前面介紹的向量和矩陣的修改方式相同。向量和矩陣都是廣義的數組。

繼續閱讀