R語言 資料操作

2021-08-13 21:45:13 字數 3658 閱讀 1164

1、顯示工作區間所有物件ls()或objects()

2、清空空間中的物件 rm()

3、給物件賦值

1、輸出資料型別 class()

is.資料型別.() 判斷是否為此資料型別

可以用method(is)檢視is的所有方法

2、四種資料屬性

3、資料缺失 即資料為空用na表示

一張圖看懂r語言變數的基本型別

【一維】 向量、因子

1、向量(數值)

①建立向量的格式

c()或x:y

x=c(1,3,5,7)

y=1:10

②注意 冒號:的優先順序很高,因此1:10-1是先執行1:10再將每個數都減1

③這裡是乙個例子

2、因子(分類)

①建立因子的格式

factor(向量,[levels=],[labels=])

factor(1:4)

<1>不寫levels,則levels的值為所輸向量的種類集合

<2>設定levels的值,則輸出只能是levels包括的值,向量中有但levels中無的數輸出時會用na表示

即下圖中雖然輸入的向量為1到4,但levels的值只有1和2,所有原本的3和4輸出時用na代替

<3>輸出因子的分類

levels()  #輸出因子的分類
<4>輸出分類的頻次

table() #輸出分類的頻次
【二維】 矩陣、資料框

1、矩陣

①建立矩陣

matrix(seq(x:y),nrow=,ncol=,[byrow=true],[dimnames=list(c(),c())])

matrix(seq(1:20),nrow=5,ncol=4)

<1> 預設按列輸出,加byrow=true後則按行輸出

<2>dianames 給每行每列命名

②刪除某行或某列

矩陣名[-行號,-列號]
③矩陣運算

<1>r語言中的矩陣相乘為對應元素的相乘即c=a*b 中的c[i]=a[i]*b[i] 和數學中的矩陣相乘不同

c=a%*%b 為數學意義上的矩陣運算

<2>diag(矩陣名稱) 輸出矩陣的對角線

diag(n) 輸出n行n列的單位矩陣

diag(x:y) 輸出以此向量為對角線的矩陣

2、資料框

資料框即乙個鍵對應許多值,有不同資料型別的資料

①建立資料框

data.frame(鍵1=c(),鍵2=c(),...,鍵n=c())

df=data.frame(name=c("zhangsan","xiaohong","lisi","xiaolan"),***=c("m","f","m","f"),age =c(20,21,19,20),weight=c(110,90,128,102))

②指定行名。 如果不指定行名,那麼就是從1開始自增的sequence來標識每一行。

rownames=c()
③輸出

<1> 資料框名稱[[鍵]]

<2>資料框名稱$鍵

上面兩種方式都輸出鍵對應的值

【三維】 陣列、列表

1、陣列

①建立陣列

array(n:m,dim=c(x,y)) #建立二維陣列

array(n:m,dim=c(x,y,z)) #建立三維陣列

②dim()

<1> dim(陣列) 返回陣列維度

<2> dim(向量w)=c(x,y,z) 則把此向量w轉化為陣列

2、列表

①建立列表

列表中不同的資料可以有不同的型別

list(鍵1=值1,鍵2=值2,...)

stu.lt=list(name="zhangsan",stu.no="20140224",age=21,grade=c(90,85,96))

②列表輸出

<1>輸出鍵和值

list[鍵] 或 list[n]

<2>只輸出值

list$鍵 或list[[n]]

<3>輸出列表中所有鍵的名稱 names(列表名)

③修改列表

用一句話來說,對列表進行操作都是列表名$鍵,如果這個鍵不是原列表的鍵,則此操作為新增鍵,若是列表中原有的鍵則為修改值,若值為null則為刪除鍵

<1> 為列表新增乙個鍵

列表名$鍵=值

stu.lt

$project =c("programming","sport")

<2>刪除列表中的鍵

列表名$鍵=

null

#null只能大寫

stu.

lt$stu.no

=null

<3>修改列表中某個鍵對應的值

列表名$鍵=值

stu.lt

$name ="lisi"

資料框和列表的區別

直觀上看,列表可以模擬為一維的向量,資料框則可以模擬為二維資料的矩陣。技術層面而言,資料框是每個元件長度都相等的列表。

資料框是列表的一種,資料框每一列就是列表的乙個元素,所以每一列可以是不同型別但長度要相等

不同資料結構之間的轉換

as.要轉成的資料型別.(m)`
可以用method(as)檢視as的所有方法

例如m是乙個矩陣,

m.frame
運算

1、數**算

2、比較運算

< 小於 > 大於 <= 小於或等於 >= 大於或等於 == 等於 != 不等於

==用來比較單個字元是否相等

identical()比較整體是否完全相等

all.equal()比較整體是否近似相等

3、邏輯運算

! x 邏輯非 x & y 或 x && y 邏輯與 x j y 或 x jj y 邏輯或

xor(x, y) 異或

R語言 資料操作小貼士合集

建立空的資料框 data data.frame id character age numeric stringsasfactors false 排序 data2 data order data 18 decreasing f 將data資料集按照第18列的值公升序排列命名為資料集data2 刪除空行...

R語言 深圳 面授 R語言 操作MySQL資料庫

用r語言做資料分析時,常常需要從多種資料來源取資料,其中資料庫是非常常見的資料來源。用r操作mysql資料庫,可以說是資料分析師必備的技能了,本文介紹rmysql包,可以在r語言中對資料庫進行增刪改查的操作。install.packages rmysql 用dbconnect函式建立連線,驅動型別設...

R語言檔案操作

path j lab ex29 在r語言中進行檔案 夾 操作 setwd path cat file a n file a 建立乙個檔案a,檔案內容是 file a n 表示換行,這是乙個很 好的習慣 cat file b n file b 建立乙個檔案b 有空行file.create a 建立乙個...