當前位置:成語大全網 - 書法字典 - r語言數據對象和操作

r語言數據對象和操作

r語言數據對象和操作

R語言中的數據對象和操作說明的編排

2.1數據對象和類型

由R語言創建和控制的實體稱為對象。

Ls()命令查看當前系統中的數據對象。

r對象的名稱必須以英文字母開頭,由壹串大小寫字母、數字或小時組成。

註意:r區分大小寫。

不要使用R的內置函數的名稱作為數據對象的名稱,如C、length等。

2.2數據對象類型

R語言的對象包括

數字:實數,可以寫成整數、小數和科學記數法。

邏輯):T(真:T(真)或F(假)

字符:夾在“”或”之間

復雜:形狀為a+bi。

Raw:以二進制形式保存數據。

缺失值:壹些統計數據不完整。當壹個元素或值在統計期間“不可用”或“缺少值”時,可以保留相關位置並給定特定的n a值(不可用),任何NA操作的結果都是NA。

用於識別和轉換數據對象類型的函數:

判別變換

字符為。字符()為,字符()

復雜的

兩倍

整數

邏輯學的

數字的

2.3數據對象構建

R語言中有六種主要的數據對象結構:向量、矩陣、數組、列表、數據幀和因子。

2.3.1 vector是基本類型相同的元素序列,相當於壹維數組。

由五個數值組成的向量x,這是由函數c()完成的賦值語句,其中c()可以有任意數量的參數,輸出值是這些參數首尾相連形成的向量。

除“““=“以外的r的賦值符號

例如:

& gtc(1,3,5,7,9)-》;y

& gty

[1] 2 5 8 3

& gtz = c(1,3,5,7,9)

& gtz

[1] 1 3 5 7 9

函數的作用是:給壹個向量賦值。

Length():可以返回向量的長度。

Mode()返回向量的數據類型。

正則序列用“:”標記,可以產生正則正則序列(:具有最高的運算級別)。

函數seq()生成各種規則序列。

seq(from,to,by)from給出序列的起始值,to表示序列的結束值,by表示步長(省略by時,表示步長值為1)。

& gtseq(1,10,2)

[1] 1 3 5 7 9

& gt序列(1,10)

[1] 1 2 3 4 5 6 7 8 9 10

有時我們註意序列的長度,使用語法:seq(下界,by=,長度=)

& gtseq(1,by=2,長度=10)

[1] 1 3 5 7 9 11 13 15 17 19

rep(x,times,...)x表示要重復的對象,times表示重復的次數。

& gtrep(c(1,3,4)

[1] 1 3 1 3 1 3 1 3

& gtrep(c(1,3),each=4)

[1] 1 1 1 1 3 3 3 3

對每個元素重復;

r中的內置函數:

Mean()顯示向量的平均值。

Median()要求數字。

風險值方差()

Sd()求標準差

Sort()排序向量。

Rev()按原始方向的相反方向排列向量。

Rank()給出向量的等級。

Prod()尋找向量連通積

Append()向向量添加元素。

矢量運算的常用函數表

功能用法

Sum()求和

Max()求最大值。

Min()查找最小值

範圍()查找範圍(總力矩)

Mean()求平均值。

尋找中值

風險值方差()

Sd()求標準差

排序()排序

反向排序

排名()尋求排名

Append()添加

替換()替換

匹配()匹配

Pmatch()部分匹配

All()判斷所有

Any()判斷部分

產品(產品)

矩陣

矩陣是按行和列排列數據的矩形表格。它是壹個二維數組,其單元格必須是相同的數據類型。通常,列用於表示不同的變量,行用於表示各種對象。

它的語法是:

矩陣(data=NA,ncol=1,byrow-=FALSE,dimnames=NULL)

需要數據和其他幾個選擇參數。

Nrow表示矩陣中的行數。

Ncol表示矩陣的列數。

Byrow默認為FALSE,這意味著矩陣是按列排列的;如果設置為t,則表示按行排列;

Dimnames可以更改矩陣行和列的名稱。

Diag()函數生成對角矩陣。

Diag()是壹個特殊的函數,它在數據是向量時生成對角矩陣,但在數據是矩陣時返回對角元素。

單位矩陣也可以由函數diag()生成。

當我們生成壹個矩陣時,如果我們想訪問矩陣的壹個元素或壹行(列),我們可以以A【I,j】的形式獲得相應的索引矩陣。

矩陣可以進行加減乘除運算,但在運算時要註意行數和列數的限制。

R中的A*B不是指矩陣乘法,而只是指矩陣對應元素的乘法。

矩陣乘法應用A%*%B

Dim()返回矩陣的行數和列數。

Nrow()返回矩陣中的行數。

Ncol()返回矩陣的列數。

Solve()返回矩陣的逆矩陣。

矩陣運算的常用函數

功能用法

As.matrix()將非矩陣轉換為矩陣。

Is.matrix()區分它是否是矩陣。

Diag()返回對角元素或生成對角矩陣。

求特征值和特征向量

求解()以找到逆矩陣

CHOL的Choleski分解

奇異值分解

Qr分解

Det()尋找行列式

Dim()返回行數和列數。

矩陣轉置

Apply()將函數應用於矩陣。

r語言還提供了計算矩陣的行或列的函數。

例如,colSUms()對矩陣的列求和,colMeans()求矩陣各列的平均值。

類似地,還有row sums()row means()

更通用的方法:

Apply()函數對每行和每列進行操作。

語法是:apply(x,margin,fun,...)

x表示要處理的數據。

MARGIN表示函數的範圍。

取1表示該函數應用於該線。

取2意味著對列應用函數。

FUN表示要使用的功能。

Rbind()和cbind()組合兩個或多個矩陣。

Rbind()表示按行合並,cbind()表示按列合並。

陣列

數組可以被視為具有多個下標的相同類型元素的集合。

數組的生成函數是array(),其語法是

數組(data=NA,dim = length(data),dimnames-NULL)

數據表示數據,可以為空。

模糊表示維度

Dimnames可以更改數組難度的名稱。

列表

向量、矩陣和的單位必須是相同類型的數據。如果壹個數據對象需要包含不同的數據類型,它可以是列表的形式。

列表是由壹組有序的對象組成的對象,列表中包含的對象也稱為其組件,它們可以是不同的模式或(和)類型。

語法為:list(變量1=組件1,變量2=組件2,...)

要訪問列表中的組件,您可以以LST【【1】】、LST【【2】】的形式進行訪問。

因為組件可以命名,所以您可以在列表名稱後添加壹個$符號,然後寫入組件名稱以訪問列表組件。

函數length()、mode()和names()可以分別返回列表中組件的長度(組件數量)、數據類型和名稱。

數據框

數據框是壹種矩陣形式的數據,但數據框中的每壹列都可以是不同類型的數據。數據框的每壹列都是壹個變量,每壹行都是壹個觀察值。

數據框中可能包含的列表有壹些限制:

1.組件必須是向量(數值、字符、邏輯)、因子、數字矩陣、列表或其他數據框。

2.矩陣、列表和數據框為新的數據框提供盡可能多的變量,因為它們每個都有列、元素或變量。

3.數字向量、邏輯值和因子保持其原始格式,而字符向量被強制轉換為因子,它們的級別是向量中出現的獨立值。

4.數據框中變量形式的矢量結構必須具有相同的長度,矩陣結構必須具有相同的行數。

在R中,函數data.frame()用於生成數據幀,其語法為:data . frame(data 1,data2,...).

數據框的列名默認為變量名,也可以重命名列名。

您還可以修改數據框的行名稱。

2.3.6因數和順序因數

數據類型化通常將數據分為不同的級別或因素。

生成因子的命令是factor(),其語法是:factor(數據,級別,標簽,...).

其中數據代表數據。

Levels是因子水平向量。

標簽是因子的標簽向量。

等級、標簽是可選的,所以妳不必選擇它們。

如果上述每個因子都不能表示因子的大小,則可以通過ordered()函數生成以表示因子的順序(考慮因子之間的順序)。

2.4數據輸入和編輯

C-function: C-function將所有值連接成壹個向量或列表,它可以形成壹個數字向量、壹個字符向量或其他類型的向量。

掃描功能:類似於C功能,實際上是壹個鍵盤輸入數據的功能。當您輸入scan(),然後按enter鍵時,您將等待輸入數據,只要數據之間用空格分隔(c函數應該用逗號分隔)。輸入數據後,再次按回車鍵,數據輸入完成。

掃描功能也可以讀取外部文本文件。如果有壹個現有的文本文件data.txt,讀取該文件的命令是:》;x = scan(file =“dat . txt“)

如果原始文件中的數據之間有逗號和其他分隔符,則在使用scan讀入時應刪除這些分隔符。命令是:》x = scan(file =“dat . txt“,sep=“,“)

編制資料

數據輸入命令

Xx最初沒有定義,但現在它被賦予了壹個空值。這時會出現壹個電子表格界面,等待數據輸入:》data . entry(xx = c(NA))

當電子表格關閉時,數據將自動保存。

編輯命令可用於編輯函數和數據,但不會自動保存。

修復功能類似於編輯,但可以自動保存。

從外部文件讀取數據

從文本文件中讀取:

& gts 1 = read . table(“student . txt“)

& gts1

V1 V2 V3

1班級性別分數

2 1女80

3 1男性85

4 2名男子92

5 2名婦女76

6 3女61

7 3名婦女95

8 3名男子

讀取表數據的命令是:read.table。

忽略標簽並直接使用默認的線標簽。

& gtS2 = read . table(“student . txt“,header=T)

& gts2

班級性別分數

1

2 1男性85

3 2名男子92

4 2名婦女76

5 3女61

6 3名婦女95

7 3名男子83

從網絡讀取數據

借助read.table函數,Url可以從網頁中讀取正確格式的數據。

& gtaddress=/bin/view/Misc/WebHome

/sample.txt

& gtread . table(file = URL(地址))

以其他格式讀入數據庫

要讀取其他格式的數據庫,您必須首先安裝“外來”模塊,該模塊不屬於R的八個內置模塊,需要在使用前安裝。圖書館(外國)

SAS: r只能構成SAS傳輸格式(XPORT)文件,因此有必要轉換普通的SAS數據文件(。固態硬盤和。sas7bdat)轉換為傳輸格式(XPORT)文件,然後使用命令:read.xport()。

spss數據庫:read.spss()可以讀取SPSS數據文件。

Epi信息數據庫:

要給數據集壹個名稱,它是;Read.epiinfo(“文件名。rec“)-》;名字

Stata數據庫:

r可以讀入Stata5、6、7、6和7的數據庫。

讀取數據文件後,使用數據集名稱$ variable name來使用每個變量。

& gtRead.dta(“文件名。dta“)

讀取數據文件後,使用數據集名稱$ variable name來使用每個變量。

& gt平均值(數據年齡)

是計算數據集數據中變量年齡的平均值。

2.5函數、循環和條件表達式

2.5.1編程功能

語法是:

函數名=函數(參數1,參數2…)

{

功能體

函數返回值

}

對於這種只有壹個算術表達式的簡單函數,您想{}嗎

& gt平均值(數據年齡)

是計算數據集數據中變量年齡的平均值。

如果不使用括號,請直接輸入函數名,然後按enter鍵顯示函數的定義:

單參數:要使函數個性化,可以使用單個參數,函數將根據不同的參數返回不同的值。

& gtwelcome . sb = function(names)print(paste(“welcome”,names,“to

使用R“)

& gtwelcome.sb(“方先生”)

【1】“歡迎方先生使用R“

& gt王先生

【1】“歡迎王先生使用R“

默認參數:即不輸入任何參數。

函數的默認參數

& gtwelcome . sb = function(names =“方先生“)print(paste(“welcome“、

名稱,“使用R“))

& gt歡迎

【1】“歡迎方先生使用R“

當函數體中有多個表達式時,應該用{}括起來。

用於循環

for循環的語法是:

For(值向量中的變量){

表示...

}