r語言的基礎

2021-10-09 18:20:25 字數 3594 閱讀 4715

資料型別

##矩陣

#建立矩陣

m <- matrix(1:8, nrow = 2)

#q:按行建立矩陣

m <- matrix(1:8,nrow= 2, byrow = t)

mmatrix(c(1,5,2,6,3,7,4,8), nrow = 2) #byrow引數知識改變了資料的輸入順序,矩陣本身依然是按列儲存

#矩陣運算

m1 <- matrix(1:4, nrow = 2)

m2 <- matrix(2:7, nrow = 2)

m1;m2

m1 + m2

m1 * m2

#矩陣運算,可以用迴圈補齊嗎?

m1 <- matrix(1:4, nrow = 2)

m2 <- matrix(2:7, nrow = 2)

m1;m2

m1 + m2

m1 <- matrix(1:4, nrow = 2)

m2 <- matrix(2:3, nrow = 1)

m1;m2

m1 + m2

#矩陣索引

m <- matrix(1:12, nrow = 4)

mm[,2:3]

m[1:3]

m[1:5]

#訪問矩陣的某行

mm[1,]

#訪問矩陣的某列

mm[,2]

m[,1<=2]

#矩陣元素按條件篩選

m <- matrix(1:12, nrow = 4)

mfirst.col <- m[,1]

first.col

first.col %% 2 == 0

m[first.col %% 2 == 0,]

m[first.col %% 2 == 0 & m[,2] > 6,]

#課堂練習-q:建立乙個矩陣,找出第二列元素能被3整除且大於5的元素所在的行的元素

#獲取矩陣的行數,列數

mnrow(m)

ncol(m)

#矩陣刪除元素

m <- matrix(1:12, nrow = 4)

mm[-2,]

m[,-1]

m[-1,-1]

#改變矩陣的值

mm.value <- matrix(rep(0,6),nrow = 2)

m.value

m[c(1,3),]

m[c(1,3),] <- m.value

m#課堂練習-q:將矩陣第1列和第3列的值設定為大於1000的不同值

#應用:修改

#install.packages(「pixmap」)

library(pixmap)

p <- read.pnm(「python.pgm」)

pplot§

str§

p2 <- p

p2@grey[80:103,10:60] <- 1

plot(p2)

#cbind() rbind() 組合矩陣資料

m <- matrix(1:12, nrow = 3)

mcol.v <- matrix(21:26, nrow = 3)

col.v

cbind(m,col.v)

rbind(m,col.v)

row.v <- matrix(21:28, nrow = 2)

row.v

rbind(m,row.v)

#陣列test1 <- matrix(sample(90:100,6,replace = f), nrow = 2)

test1

test2 <- matrix(sample(90:100,6,replace = f), nrow = 2)

test2

test <- array(data=c(test1,test2), dim = c(2,3,2))

test

attributes(test)

str(test)

test[,1]

test[1,1]

test[,1,1]

test[1,1,1]

#列表#建立列表

stu.lst <- list(name = 「xiaoming」, id=1001, is.past.exam = t)

stu.lst

stu.lst2 <- list(「xiaoming」, 1001, t)#可以不給列表加標籤

stu.lst2

new.l <- vector(mode = 「list」)

new.l

new.l[[「name」]] <- 「xiaoming」

new.l

#列表的常規操作

#列表索引

stu.lst

stu.lst$name

stu.lst[[「name」]]

stu.lst[「name」]

name <- stu.lst[「name」]

name

str(name)

name2 <- stu.lst[「name」]

name2

str(name2) #雙中括號一次提取出的是列表的乙個元件,返回值是元件本身的型別

stu.lst[[1]]

stu.lst[1]

stu.lst[1:2]#對原列表取子集

stu.lst[c(1,3)]

#列表新增元素

stu.lst

stu.lst$age <- 19

stu.lst

length(stu.lst)#獲取列表長度

stu.lst[[5]] <- 98

stu.lst

stu.lst[6:8] <- 1:3

stu.lst

#列表刪除元素

stu.lst

stu.lst[[8]] <- null

stu.lst

stu.lst[6:7] <- null

stu.lst

stu.lst$age <- null

stu.lst

#將多個列表拼接為乙個列表

stu.lst

stu.lst2

c(stu.lst,stu.lst2)

#訪問列表元素的標籤

stu.lst

names(stu.lst)

#去掉向量的元素名

un.stu

names(un.stu)

un.stu

#unlist函式

stu.lst

unlist(stu.lst)

un.stu <- unlist(stu.lst)

un.stu

str(un.stu)

typeof(un.stu)

#遞迴列表:列表的元素是列表

lst1 <- list(1:3)

lst2 <- list(11:15)

lst <- list(lst1,lst2)

lstlength(lst)

c(lst, recursive = t)

c(list(score=100, stu=list(name=「xiaoming」, id=1001)), recursive = t)

R語言基礎

一 幫助 學習r,要遵循r的法則。在r的王國裡,遇到不會的問題,第一不是問度娘,而是r為你提供的指 難 針。1.help.start 開啟幫助文件首頁。大而全,一般你不會去看的,除非你很無聊,想看看被如此多人熱愛的r,究竟有幾條胳膊幾條腿。2.help plot 或?plot 開啟函式的幫助 3.h...

R語言基礎

博主目前business analytics 在讀,求職方向資料科學家。閒著的時候把r的知識整理總結,也希望自己在逐漸高階的過程中把知識分享給想要進入資料科學行業的朋友們。會慢慢豐富起來噠 x 3 y 5 x y 是賦值符號 給r語句標註的符號是 r會自動掠過前面有 的語句。c vec 1 c 1,...

R語言基礎語法

dim 函式使用 a,描述 檢索和設定物件的範圍 b,用法 dim x dim x value 和等號的意思一樣 r物件,例如乙個矩陣,陣列或資料幀。c,dim 有乙個方法為data.frames,它返回x的row.names的長度屬性和x的 如行和列的數量分別 d,值 對於陣列 並因此在特別是,對...