數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。
R 中的數(shù)據(jù)類(lèi)型
(1)數(shù)值型,數(shù)值可以用于直接計(jì)算,加減乘除;(2)字符串型,可以進(jìn)行連接,轉(zhuǎn)換,提取等;(3)邏輯型,真或者假;(4)日期型等;
一般編程數(shù)據(jù)結(jié)構(gòu)
普通數(shù)據(jù)結(jié)構(gòu):向量,標(biāo)量,列表,數(shù)組,多為數(shù)組
特殊數(shù)據(jù)結(jié)構(gòu):perl 中的哈希,python 中的字典以及 C 語(yǔ)言中的指針等
R 對(duì)象
對(duì)象:object,它是指可以賦值給變量的任何事物,包括常量、數(shù)據(jù)結(jié)構(gòu)、函數(shù),甚至圖形。對(duì)象都擁有某種模式,描述了此對(duì)象是如何存儲(chǔ)的,以及某個(gè)類(lèi)。
1、向量(vector)
R 中最重要的一個(gè)概念,它是構(gòu)成其他數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)。R 中的向量概念與數(shù)學(xué)中向量是不同的,類(lèi)似于數(shù)學(xué)上的集合的概念,由一個(gè)或多個(gè)元素所構(gòu)成。
向量其實(shí)是用于存儲(chǔ)數(shù)值型、字符型或邏輯型數(shù)據(jù)的一維數(shù)組。用函數(shù) c 來(lái)創(chuàng)建向量。
x <- c(1,2,3,4,5) #元素之間用逗號(hào)隔開(kāi)
y <- c("one","two","three") #字符串必須加引號(hào),不加引號(hào),就會(huì)當(dāng)作內(nèi)部對(duì)象處理
z <- c(TRUE,T,F) #邏輯型向量不需要加引號(hào),不能使用首字母大寫(xiě)的形式
快速形成向量
c(1:100) #生成1到100的等差序列
seq(from=1, to=100, by=2) #by 代表等差值
seq(from=1, to=100, length.out=10) #輸出1-100的10個(gè)數(shù)值
生成重復(fù)序列
image.png
向量索引
(1)正(負(fù))整數(shù)索引;(2)邏輯向量索引;(3)名稱(chēng)索引。
正(負(fù))整數(shù)索引
image.png
邏輯向量索引
image.png
元素名稱(chēng)訪問(wèn)
image.png
向量的增加和刪除
——
2、向量運(yùn)算
向量簡(jiǎn)單運(yùn)算
image.png
向量之間運(yùn)算
長(zhǎng)向量必須是短向量的倍數(shù)才能進(jìn)行運(yùn)算!
%%:求余;%/%:整除
image.png
向量邏輯運(yùn)算
%in%包含運(yùn)算符,邏輯運(yùn)算比較時(shí)候不能用一個(gè)等號(hào),而應(yīng)該用兩個(gè)等號(hào)!
note:
R語(yǔ)言通常用符號(hào)”<-”代替其它語(yǔ)言里的”=”來(lái)作賦值符號(hào)。因?yàn)榍罢咔闷饋?lái)比等號(hào)要麻煩,且大部分情況下兩者是等價(jià)的,所以通常就愉懶依舊用”=”來(lái)賦值。但要切記兩者在某些時(shí)候是有區(qū)別的。字面上的解釋?zhuān)梢哉J(rèn)為”<-”是賦值,”=”是傳值。在函數(shù)調(diào)用中,func(x=1) 與 func(x<-1)是有區(qū)別的,前者調(diào)用完后變量x不會(huì)被保留,而后者會(huì)在工作區(qū)里保留變量x=1。再如length(x=seq(1,10))計(jì)算完成后x不會(huì)被保留,而length(x<-seq(1,10))計(jì)算完后會(huì)在工作區(qū)里發(fā)現(xiàn)x這個(gè)變量。
image.png
向量運(yùn)算函數(shù)
image.png
image.png
統(tǒng)計(jì)函數(shù)
數(shù)據(jù)整體處理,返回一個(gè)值!
image.png










