-
列表的子集
x <- list(id=1:4,height=170,gender="male")? #創(chuàng)建列表
x[1] ? #輸出id和1234
x[[1]] #輸出1234
x[["id"]] #輸出1234
x$id ?? #輸出1234
x[c(1,3)]? #輸出第1和第3兩個(gè)元素
x$名字 ? #不能 引用名字的變量
獲取嵌套列表中列表的內(nèi)容:
x[[i]][[j]]
x[[c(i,j)]]
列表的不完全匹配
l <- list(asdfghj = 1:10)
# l$asdfghj ? 與? l$a的結(jié)果相同那個(gè)
x[["a",exact = FALSE]] ? #關(guān)閉精確匹配,輸出結(jié)果與上相同
?
查看全部 -
3-4列表的子集
查看全部 -
3-4列表的子集
查看全部 -
數(shù)據(jù)框的子集
x <- data.frame(v1=1:5,v2=6:10,v3=11:15)? #構(gòu)造數(shù)據(jù)框
x$v3[c(2,4)] <- NA? #使v3的第2.4兩位元素定義成缺失值
#數(shù)據(jù)框可以通過(guò)名稱(chēng)索引元素
x[(x$v1<4 & x$v2>=8),] ? 輸出同時(shí)滿(mǎn)足兩個(gè)條件的行
?which? #查看which函數(shù)有什么功能
which(x$v1>2)? #輸出滿(mǎn)足條件的下標(biāo)
x$v1>2 ? ? ? ? ? ?? #輸出x的邏輯向量
subset(x,條件) ?? #構(gòu)件子集的函數(shù),x可為數(shù)據(jù)框、矩陣等
查看全部 -
矩陣的子集
創(chuàng)建矩陣后可以通過(guò)矩陣名進(jìn)行元素的提取
x[2,c(1,3)]? #提取矩陣x的第二行的第一和第三 兩個(gè)元素
x[1,2,drop = FALSE] #將所得元素以矩陣的類(lèi)型返回
查看全部 -
矩陣的子集
x<-matrix(1:12,3,4)#形成三行四列的矩陣 x[1,]#取出第一行元素 x[,1]#取出第一列元素 x[2,c(2,4)]#取出矩陣中的第2行的第2列和第4列元素 x[2,c(2:4)]#取出矩陣中的第2行的2-4個(gè)元素 class(x[1,2])#查看輸出的數(shù)據(jù)類(lèi)型(返回向量) x[1,2,drop=FALSE]#關(guān)掉輸出的向量(integer)形式而轉(zhuǎn)變?yōu)榫仃嚕╩atrix)形式
查看全部 -
構(gòu)件子集基本方法:
[]:提取一個(gè)或多個(gè)類(lèi)型相同的元素
[[]]:從列表或數(shù)據(jù)框中提取元素
?$:按名字從列表或數(shù)據(jù)框中提取元素
?? #與C和python不同的是,R的下標(biāo)從‘1’開(kāi)始
? ? #可以通過(guò)向量名稱(chēng)來(lái)索引與之對(duì)應(yīng)的向量
查看全部 -
日期和時(shí)間
x <- date() #獲取當(dāng)前本機(jī)時(shí)間
x2 <-? sys.date() #獲取當(dāng)前本機(jī)時(shí)間的年月日
x3 <-? as.Date("2015-01-01") #定義Date型日期
時(shí)間:POSIXct/POSIXlt
x <- Sys.time()? #獲得本機(jī)時(shí)間 class(x) —"POSIXct" "POSIXt"
p <- as.POSIXlt(x)? 轉(zhuǎn)換類(lèi)型? class(p) —“POSIXlt”“POSIXt”
names(unclass(p)) #查看p中存在哪些變量
p$sec? #獲得秒
as.POSIXct(p)? #將時(shí)間類(lèi)型轉(zhuǎn)化為POSIXct
weekday(x3)#返回日期具體對(duì)應(yīng)的周幾
months(x3) #返回日期對(duì)應(yīng)的月份
quarters(x3) #返回日期對(duì)應(yīng)的季度
julian(x3)? #返回日期距離'1970-01-01'的天數(shù)
as.numerci(x4 -x3) #返回兩個(gè)日期的相差的天數(shù)
striptime(待轉(zhuǎn)化的日期,"%B %d, %Y %H:%M")? #時(shí)間標(biāo)準(zhǔn)化輸出
??????????????????????????????????????? 上述格式應(yīng)當(dāng)與帶轉(zhuǎn)化日期相對(duì)應(yīng)
查看全部 -
數(shù)據(jù)框:1.存儲(chǔ)表格數(shù)據(jù) 2.視為各元素長(zhǎng)度相同的列表(元素類(lèi)型可以不同)
df <- data.frame(id=c(1,2,3,4),name=c("a","b","c"))#建立數(shù)據(jù)框
nrow(df)? #查看df的行數(shù)
ncol(df)??? #查看df的列數(shù)
對(duì)于相同類(lèi)型的數(shù)據(jù)的數(shù)據(jù)框可以直接轉(zhuǎn)換為矩陣
data.matrix(df2)?? #其中df2中元素類(lèi)型相同
查看全部 -
缺失值(missing value)—NA/NaN:其中NaN屬于NA,NA不屬于NaN
#NAN僅代表數(shù)值型的缺失值,而NA代表的是數(shù)值、字符型等缺失值
?is.na(x)#檢驗(yàn)x中是否有NA
is.nan(x)#檢驗(yàn)x中是否有NaN
查看全部 -
因子(factor)—分類(lèi)數(shù)據(jù)/有序 vs. 無(wú)序
?????????????????????? —整數(shù)向量 + 標(biāo)簽(label)優(yōu)于整數(shù)向量
x <- factor(c("female","female","male"),levels(“male”,"female")) ??????????????????????????????? #可以構(gòu)建因子,并且可以通過(guò)levels設(shè)立基線因子t
table(x)? #得出x因子的分布表
unclass(x) #將x因子轉(zhuǎn)化為值標(biāo)簽
查看全部 -
列表(list):可以包含不同類(lèi)型的對(duì)象
l2 <- list(a=1,b=2,c=3)?? #其中a,b,c分別為1,2, 3的名詞
l3 <- list(c(1,2,3),c(4,5,6))#生成兩個(gè)元素,元素長(zhǎng)度均大于1
dimnames(x)? #給矩陣x的行列標(biāo)題進(jìn)行命名
list(c("a","b"),c("c","d","e")) #可以用list給維數(shù)相對(duì)應(yīng)的矩陣標(biāo)題命名
查看全部 -
#Matrix & Array
定義矩陣 C <- (data,nrow,ncol)? #其中data為矩陣的內(nèi)容,nrow為行?????
?????????????? 數(shù),ncol為列數(shù),矩陣在填充的時(shí)候是以列的方式來(lái)填充的
dim(x)?? #查看矩陣的維數(shù)m×n
arritubtes(x)? #查看x的屬性
矩陣相當(dāng)于向量+維度:y <- 1:6 ,dim(y) <- c(2,3) #構(gòu)建2×3維度的矩陣
矩陣的拼接:
??????????????????? rbind(x,y)??? #將矩陣x和y按行拼接,列數(shù)不變,行數(shù)增加
??????????????????? cbind(x,y)??? #將矩陣x和y按列拼接,行數(shù)不變,列數(shù)相加
數(shù)組(array)-與矩陣相似,但是維度可以大于2
x <- array(1:24,dim=(4,6))?? #用array直接建立數(shù)組
x<-? array(1:24,dim=(2,3,4)) #建立3維數(shù)組,其輸出為4個(gè)2*3數(shù)組
查看全部 -
向量(vector):只能包含同一類(lèi)型的對(duì)象
創(chuàng)建向量的方法:1. 定義 x <- vector(數(shù)據(jù)類(lèi)型,數(shù)據(jù)長(zhǎng)度)
?????????????????????????? 2. x1 <- 1:4 ? #創(chuàng)建整型向量1-4
?????????????????????????? 3. x3 <- c(向量的元素)? # 例如構(gòu)建向量x3<-c(1,2)
#對(duì)于向量中元素類(lèi)型不同的情況,R語(yǔ)言中會(huì)自動(dòng)強(qiáng)制轉(zhuǎn)化
?例如x3 <- c(TRUE,10,"a") 會(huì)轉(zhuǎn)換為("TRUE","10","a")
?as.numeric(x)?? #將x轉(zhuǎn)換為數(shù)值型向量
?as.logical(x)????? #將x轉(zhuǎn)換為邏輯向量
?as.character(x)? #將x轉(zhuǎn)換為字符型向量
names(x1) <- c("a","b","c")? #給向量x1進(jìn)行命名,“a”為第一個(gè)向量元????
????????????????????????????????????????????? 素的名字,依次類(lèi)推
查看全部 -
x <- 1?? #‘<-’是R語(yǔ)言中的賦值符號(hào)
[1]??????? #表示它后面接著的元素是x第一個(gè)元素
?1???????? #x中存儲(chǔ)的內(nèi)容是1
class(x)#用于查看變量x的類(lèi)型
x <- 3L#在數(shù)字后面加入大寫(xiě)L定義整型
x <- "" #定義字符串
x <- TRUE #定義邏輯型(真、假)? 注意在定義時(shí)需要大寫(xiě)
x <- a+bi? #定義復(fù)數(shù)類(lèi)型
查看全部
舉報(bào)